HDU 1421 搬寝室

来源:互联网 发布:放开那三国 数据库 编辑:程序博客网 时间:2024/04/27 23:28

搬寝室

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


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 11 3
 

Sample Output
4
 

Author
xhd

给定n个物品,每个物品有重量,
   从中选出m对,使得这m对物品重量差的平方和最小。
   疲劳度:m对物品重量差的平方和
   分析与解题思路
   先对n中物品的重量排序
   令dp[i][j]表示前i个物品中选j对的最小疲劳度。
   则dp[i][j]可能含有第i个物品(这种情况下,第i种物品一定是和第i-1个物品配对),
   则dp[i][j]=dp[i-2][j-1]+w[i-1]
    dp[i][j]的j对也可能不含有第i个物品,此时有
   dp[i][j]=dp[i-1][j]
   状态转移方程
   dp[i][j]=min{dp[i-2][j-1]+w[i-1],dp[i-1][j]}
 
AC代码:
#include <iostream>#include <cstring>#include <algorithm>using namespace std;int MIN(int a,int b){    return a<b?a:b;}long long dp[2005][1005];int main(){  int w[2005];  int n,k;  while(cin>>n>>k)  {      for(int i=1;i<=n;i++)      cin>>w[i];      sort(w,w+n+1);      for(int i=1;i<n;i++)      w[i]=(w[i+1]-w[i])*(w[i+1]-w[i]);      for(int i=0;i<=n;i++)      for(int j=0;j<=k;j++)      dp[i][j]=1000000000;      for(int i=0;i<=n;i++)  dp[i][0]=0;      for(int i=2;i<=n;i++)      for(int j=1;j*2<=i;j++)      {          dp[i][j]=MIN(dp[i-2][j-1]+w[i-1],dp[i-1][j]);      }      cout<<dp[n][k]<<endl;  }return 0;}

 
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 思维习惯 孩子的习惯 学生习惯 健康习惯 习惯的培养 7个习惯 习惯化 谈习惯 成功的习惯 减肥的习惯 狗的习惯 工作习惯 他很多好习惯 他有很多好习惯 养成良好习惯 藏族风俗习惯 我已经习惯凌晨 我已经习惯在凌晨三点 我已经习惯凌晨三点 好习惯手抄报 藏族的风俗习惯 蒙古族风俗习惯 大学生饮食习惯调查 培养良好习惯 习惯的近义词 良好学习习惯 21天养成习惯 好习惯有什么 21天养成好习惯 穿穿你就习惯了 一个人习惯了 关于习惯的名言 习惯什么意思 关于习惯的句子 关于习惯的作文 有什么好习惯 习惯有你歌词 习惯英语怎么说 习惯一个人的句子 好习惯有哪些 养成好习惯的名言