搬寝室

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 11458    Accepted Submission(s): 3843
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]=min{dp[i-2][j-1]+(val[i]-val[i-1])*(val[i]-val[i-1]),dp[i-1][j]

#include<iostream>
#include <cstring>
#include<algorithm>
using namespace std;
#define MAX 2005
#define INF 2147483640
int dp[MAX][MAX];
int main()
{int n, k;int weight[MAX] = {0};while(cin >> n >> k){memset(weight, 0, sizeof(weight));for(int i = 1; i <= n; i++){cin >> weight[i];}sort(weight + 1, weight + n + 1);for(int i = 1; i <= n; i++){for(int j = 1; j <= k; j++){dp[i][j] = INF;}}for(int i = 2; i <= n; i++){for(int j = 1; j * 2 <= i; j++){dp[i][j] = min(dp[i-1][j], dp[i-2][j-1] + (weight[i] - weight[i-1]) *(weight[i] - weight[i-1]));}}cout << dp[n][k] << endl;}return 0;
}

转载于:https://www.cnblogs.com/lgh1992314/archive/2013/04/07/5835139.html

hdoj_1421搬寝室相关推荐

  1. HDU1421 搬寝室

    题目:搬寝室 典型的DP,状态方程: dp[k][i]=min(dp[k-1][i-2]+(a[i]-a[i-1])^2,dp[k][i-1]);         dp[k][i] 表示 k 对物品在 ...

  2. HDU 1421 搬寝室 解题报告(超详细)

    **搬寝室 Time Limit: 2000/1000 MS Memory Limit: 65536/32768 K Problem Description 搬寝室是很累的,xhd深有体会.时间追述2 ...

  3. 动态规划——搬寝室(hdu1421)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1421 题目描述: 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从 ...

  4. 搬寝室(HDU 1421 DP)

    搬寝室 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  5. 题目1452:搬寝室(dp题目)

    题目链接:http://ac.jobdu.com/problem.php?pid=1452 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  6. TKO 6-7DP入门之搬寝室

    搬寝室 涉及数学公式的证明以及一些贪心思想: Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要 ...

  7. hdu 1421 搬寝室 (dp)

    思路分析: dp[i][j] 表示选取到第 i 个   组成了 j 对的最优答案. 当然排序之后 选取相邻两个是更优的. if(i==j*2) dp[i][j] = dp[i-2][j-1] + w[ ...

  8. hdu 1421 搬寝室 动态规划

    http://acm.hdu.edu.cn/showproblem.php?pid=1421 d[n][m] : 在前n个物品里选m对的最小疲劳 当地n件不选时 d[n][m]=d[n-1][m] 当 ...

  9. hdu 1421 搬寝室

    状态转移方程还是很难找啊...... 感觉自己分析很不到位,依旧参考了别人的分析...... #include <iostream> #include <cstdio> #in ...

最新文章

  1. 剑指Offer——合并两个排序的链表
  2. [转]Backup and restore history details
  3. Boost enable_if库的测试程序
  4. openstack swift middleware开发
  5. 用Python实现快速排序
  6. ssl提高组周六模拟赛【2018.9.8】
  7. 看到这个数据库设计,我终于明白了我和其他软测人的差距
  8. linux jenkins自动部署,【linux】【jenkins】自动化部署一 安装jenkins
  9. matlab 2017安装教程
  10. STM32F030外部中断配置
  11. 2019ug最新版本是多少_UGNX将在2019年发布最新版本,让人更意想不到的是它的这项新功能!...
  12. 联想拯救者 Legion Y7000P 安装 Ubuntu 18.04.2 LTS amd64 遇到的问题解决
  13. android 框架搭建养成的良好习惯(一)
  14. Havij 1.152 最新破解版
  15. zeppelin整合hive
  16. 服务器微信了早上好,早上好微信问候语(精选50句)
  17. JDO示例 - JPOX
  18. Lamdba及DataTable AsEnumerable()的使用
  19. Firefox火狐浏览器关闭之后再也打不开了 怎么破?
  20. [工具]python中文分词---【jieba】

热门文章

  1. ren命令linux,Linux mren命令
  2. python对象传递_Python参数传递对象的引用原理解析
  3. javascript判断日期奇偶_JavaScript_简介学习4
  4. 宁波大学2020计算机技术复试线,宁波大学2020年考研复试分数线
  5. c常用算法程序集_10万赞的AI算法集:含python,java,C,C++多种语言
  6. snr matlab,cal snr - MATLAB 论坛讨论区 - EETOP 创芯网论坛 (原名:电子顶级开发网) -...
  7. springboot完成进度条_Springboot从0开始第一周
  8. mysql 写入性能瓶颈_如何通过性能调优突破MySQL数据库性能瓶颈?
  9. java商城项目中多线程执行_java多线程中执行多个程序的实例分析
  10. Android 屏幕适配解决方案汇总