HDU-1421 搬寝室【dp】
题目链接:https://vjudge.net/contest/214662#problem/E
题目大意:
搬寝室
由于这些东西的重量可以打乱,那我们不妨排序,则肯定拿相邻的两件最好,但是到底拿拿两件呢?(一件物品可以有两个邻居) ,所以在拿当前这一对时就发生了决策,可以选择不拿这一对,那么现在的最优解和i-1时的最优解一样,或者拿这一对,那么就是在dp[i-1][j-2]的基础上拿当前这一对,这样就有效的避免了重复拿了一件物品。并且,如果你拿第i件物品,那么你必须要拿第i-1件物品,所以这就是下面状态转移方程的由来。
#include <iostream>
#include <algorithm>
#define MAXN 2010
#define INF 0x3f3f3f3f
using namespace std;
int ans[MAXN];
int dp[MAXN][MAXN];
int main()
{
int n, k;
while (cin >> n >> k) {
ans[] = ;
for (int i = ; i <= n; ++i)
cin >> ans[i];
sort(ans, ans + n + );
dp[][] = ;
for (int i = ; i <= n; ++i) {
for (int j = ; j <= k; ++j)
dp[i][j] = INF;
}
for (int i = ; i <= n; ++i) {
for (int j = ; * j <= i; ++j) {
dp[i][j] = min(dp[i - ][j], dp[i - ][j - ] + (ans[i] - ans[i - ])*(ans[i] - ans[i - ])); //不拿第i件 ,拿第i件
} //dp[i][j]表示从前i件物品中挑选j对的最小疲惫值
}
cout << dp[n][k] << endl;
}
return ;
}
HDU-1421 搬寝室【dp】的更多相关文章
- hdu 1421:搬寝室(动态规划 DP + 排序)
搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- 题解报告:hdu 1421 搬寝室(递推dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1421 Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9 ...
- HDU 1421 搬寝室 (线性dp 贪心预处理)
搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
- hdu 1421 搬寝室(dp)
Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆, ...
- HDU 1421 搬寝室(经典DP,值得经常回顾)
搬寝室 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status D ...
- HDU 1421 搬寝室
搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- HDU 1421 搬寝室 解题报告(超详细)
**搬寝室 Time Limit: 2000/1000 MS Memory Limit: 65536/32768 K Problem Description 搬寝室是很累的,xhd深有体会.时间追述2 ...
- 【dp】HDU 1421 搬寝室
http://acm.hdu.edu.cn/showproblem.php?pid=1421 [题意] 给定n个数,要从n个数中选择k个二元组{x,y},最小化sum{(x-y)^2} 2<=2 ...
- [HDU 1421]搬寝室(富有新意的DP)
题目地址:pid=1421" target="_blank">http://acm.hdu.edu.cn/showproblem.php? pid=1421 题目大 ...
- hdu 1421 搬寝室 (dp)
思路分析: dp[i][j] 表示选取到第 i 个 组成了 j 对的最优答案. 当然排序之后 选取相邻两个是更优的. if(i==j*2) dp[i][j] = dp[i-2][j-1] + w[ ...
随机推荐
- HDU4635 Strongly connected【强连通】
题意: 给一个n个点的简单有向图,问最多能加多少条边使得该图仍然是简单有向图,且不是强连通图.简单有向图的定义为:没有重边,无自环. 强连通图的定义为:整个图缩点后就只有一个点,里面包含n个原点,也就 ...
- cetus系列~ 继续分析
一 简介:我们来继续探讨cetus的细节问题 二 命令 1 select help 查看帮助 2 select * from backends 查看后端列表 3 select conn_detai ...
- libevent 和 libev 提高网络应用性能
构建现代的服务器应用程序需要以某种方法同时接收数百.数千甚至数万个事件,无论它们是内部请求还是网络连接,都要有效地处理它们的操作.有许多解决方 案,但是 libevent 库和 libev 库能够大大 ...
- volatile的深入理解--【sky原创】
volatile 所有定义的变量都是在内存上面的, 例如: int i = 10; int j = i; int k = i; i = 10; 是初始化的变量,存放在数据段,未初始化的变量存放在 ...
- 配置samba文件服务器
1.打开"终端窗口",输入"sudo apt-get update"-->回车-->"输入当前登录用户的管理员密码"--> ...
- CentOS 6.3下NFS安装配置
CentOS 6.3下NFS安装配置 一.环境介绍 NFS服务器:CentOS6.3 192.168.8.20 NFS客户端:CentOS6.5 192.168.8.39 二.服务器端安装配置 ...
- 转载:为什么选择Nginx(1.2)《深入理解Nginx》(陶辉)
原文:https://book.2cto.com/201304/19610.html 为什么选择Nginx?因为它具有以下特点: (1)更快 这表现在两个方面:一方面,在正常情况下,单次请求会得到更快 ...
- vue系列之vue-resource
vue-resource是Vue.js的一款插件,它可以通过XMLHttpRequest或JSONP发起请求并处理响应.也就是说,$.ajax能做的事情,vue-resource插件一样也能做到,而且 ...
- xpath定位
XML 实例文档 我们将在下面的例子中使用这个 XML 文档. <?xml version="1.0" encoding="ISO-8859-1"?> ...
- 洛谷P1970 花匠
传送门 首先可以知道,如果一个序列是连续上升的,那么只需要取这一个序列中最高的元素即可,因为取其它的不能保证大于后面的.连续下降的序列同理.而这些恰好就是波峰和波谷. 所以遇到 $ j $ 比之前的 ...