题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1421

搬寝室

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 23904    Accepted Submission(s): 8177

Problem Description
搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2*k件过去就行了.但还是会很累,因为2*k也不小是一个不大于n的整数.幸运的是xhd根据多年的搬东西的经验发现每搬一次的疲劳度是和左右手的物品的重量差的平方成正比(这里补充一句,xhd每次搬两件东西,左手一件右手一件).例如xhd左手拿重量为3的物品,右手拿重量为6的物品,则他搬完这次的疲劳度为(6-3)^2 = 9.现在可怜的xhd希望知道搬完这2*k件物品后的最佳状态是怎样的(也就是最低的疲劳度),请告诉他吧.
 
Input
每组输入数据有两行,第一行有两个数n,k(2<=2*k<=n<2000).第二行有n个整数分别表示n件物品的重量(重量是一个小于2^15的正整数).
 
Output
对应每组输入数据,输出数据只有一个表示他的最少的疲劳度,每个一行.
 
Sample Input
2 1
1 3
 
Sample Output
4
 
看了题解默出来的。
思路:dp[i][j]表示前i个物品中拿j对。
if(j*<=i-)  dp[i][j]=min(dp[i-][j],dp[i-][j-]+(weight[i]-weight[i-])*(weight[i]-weight[i-]));
else
dp[i][j]=dp[i-][j-]+(weight[i]-weight[i-])*(weight[i]-weight[i-]);        //不可能从前i-1个中拿出j对
 
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
//#define INF 9223372036854775807
#define LL long long
LL weight[];
LL dp[][]; ///前i个中找j对的最小值
int main()
{
int n,k;
while(scanf("%d%d",&n,&k)!=EOF)
{
for(int i=; i<=n; i++)
scanf("%I64d",&weight[i]);
sort(weight+,weight+n+);
for(int i=; i<=n; i++)
for(int j=; *j<=i; j++)
{
if(j*<=i-)
dp[i][j]=min(dp[i-][j],dp[i-][j-]+(weight[i]-weight[i-])*(weight[i]-weight[i-]));
else
dp[i][j]=dp[i-][j-]+(weight[i]-weight[i-])*(weight[i]-weight[i-]);
}
printf("%I64d\n",dp[n][k]);
}
return ;
}
 

最新文章

  1. 小的div在大的div中垂直居中
  2. Winform分页控件
  3. memory allocation
  4. iptables 开启3306端口
  5. 优雅退出 Android 应用程序的 6 种方式
  6. 四、分离T4引擎
  7. 电脑如何防蹭网?使用防蹭网功能杜绝未知设备连接WiFi
  8. 【图文详解】linux下配置远程免密登录
  9. VS2010每次调试都出现“此项目已经过期”提示
  10. 【代码总结● Swing中的一些操作与设置】
  11. 新闻API接口
  12. 经测试,foreach循环比linq的效率高
  13. 教你正确打开async/await关键字的使用
  14. 论文笔记:Selective Search for Object Recognition
  15. centos升级到最新的mysql
  16. php教程之Smarty模板用法实例
  17. URAL 1040 Airline Company 构造,思路 难度:2
  18. 一次傻叉的安装ubuntu虚拟机记录
  19. Code signing is required for product type &#39;Application&#39; in SDK &#39;iOS 11.2&#39;
  20. 游戏动作师使用Unity3D遇到过的所有问题

热门文章

  1. android/java经常使用的工具类源代码
  2. Xcode中git的用法介绍与&amp;quot;Please tell me who you are&amp;quot;问题的解决方式
  3. spring中编程式事务控制
  4. 我在CSDN开通博客啦!
  5. mongodb配置主从模式
  6. 【Dairy】2016.11.5
  7. 使用Oracle Sql Developer将SQL SERVER 2008数据库移植到Oracle 11g
  8. 【172】outlook邮箱设置
  9. 符号修饰与函数签名、extern “C”(转载)
  10. bzoj 1603: [Usaco2008 Oct]打谷机【瞎搞】