HDOJ-1421 搬寝室
2016-02-29 13:41
387 查看
用dp(i)(j)表示前i个物品中取j对的最小疲劳度,状态转移方程: dp[i][j] = min(dp[i-1][j], dp[i-2][j-1] + (num[i]-num[i-1]) * (num[i]-num[i-1]));
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <vector> #include <climits> using namespace std; int dp[2002][1002]; int num[2002]; int main() { // freopen("in.txt", "r", stdin); int n, k; while(cin >> n >> k) { for(int i = 1; i <= n; i++) cin >> num[i]; sort(num+1, num+n+1); for(int i = 1; i <= n; i++) for(int j = 1; j <= n/2; j++) dp[i][j] = INT_MAX; for(int i = 0; i <= n; i++) dp[i][0] = 0; for(int i = 2; i <= n; i++) for(int j = 1; j <= i/2; j++) dp[i][j] = min(dp[i-1][j], dp[i-2][j-1] + (num[i]-num[i-1]) * (num[i]-num[i-1])); cout << dp [k] << endl; } return 0; }
相关文章推荐
- 棋盘上的麦子(BigInteger处理大数问题)
- 利用Oracle的row_number() over函数消除重 复的记录
- 【剑指offer】Q40:数组中出现一次的数
- 常用汉字拼音对照表
- gitlab 杂记
- 【算法总结】graph 图的问题
- OpenCV进行图像相似度对比的几种办法
- maven本地仓库和镜像源设置
- 成都Uber优步司机奖励政策(2月29日)
- 解决Html.CheckBoxFor中”无法将类型 bool 隐式转换为 bool。存在一个显式转换..."的方法
- gulp ( http://markpop.github.io/2014/09/17/Gulp入门教程 )
- Keil MDK、Sublime的纵向垂直选择
- mongodb分片环境开启认证
- [推荐]DataX、DbSync和Timetunnel学习贴
- Java设计模式(二)——迭代模式
- js代码如何测试代码运行时间
- c++函数指针以及回调函数
- 异步调用四大方法
- clearTimeout消除闪动
- js运算符