搬寝室(经典dp)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1421
hdu_1421:搬寝室
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 22007    Accepted Submission(s): 7460
1 3
题解:经典的dp 问题,设dp[i][j]表示的是已经拿到第i件物品时拿了2*k件
转移方程要么在前i件的时候包括第i件这样第i+1件一定要取此时dp[i][k] = dp[i-2][k-1]+a[i-1],要么就是不包括滴i件,那么在dp[i][k+1]一定等于dp[i-1][k],两种情况取最小
但是只要是dp一定要注意边界条件,先看转移方程中有哪些是自己一定要处理出来的初始数据,当k == 0 的时候所有dp都是0;当转移的时候如果是2*k>=i 则不再转移,因为不可能出现了,一定要想清楚什么时候可以继续转移
特别注意:对于任何一道题,都要提前想明白点的编号是从1开始还是从0开始,然后后面的所有程序都要按照这个规则去写,因为编号的问题出的错,程序长了是不好改的。
代码:
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define INF 0x7f7f7f7f
#define N 2010
int v[N];
int a[N];
int dp[N][N];
int main()
{
int n , k;
while(~scanf("%d%d",&n,&k))
{
for(int i= ;i < n ; i++) scanf("%d",&v[i]);
sort(v,v+n);
for(int i = ; i < n ; i++) a[i-] = (v[i]-v[i-])*(v[i]-v[i-]);
//memset(dp,0x7f,sizeof(dp));
for(int i = ; i < n ; i++)
for(int j = i/+ ; j< n ;j++) dp[i][j] = INF;
for(int j = ; j < n ;j++) dp[j][] = ;
dp[][] = a[];
for(int i = ;i < n ; i++)
for(int j = ; *j <= i+ ;j++)
dp[i][j] = min(dp[i-][j],dp[i-][j-]+a[i-]);
printf("%d\n",dp[n-][k]);
}
return ;
}
搬寝室(经典dp)的更多相关文章
- hdu 1421 搬寝室(dp)
		
Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆, ...
 - HDU-1421 搬寝室【dp】
		
题目链接:https://vjudge.net/contest/214662#problem/E 题目大意: ...
 - 题目1452:搬寝室(dp题目)
		
题目链接:http://ac.jobdu.com/problem.php?pid=1452 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...
 - hdu 1241 搬寝室 水dp
		
搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Desc ...
 - HDU 1421 搬寝室 (线性dp 贪心预处理)
		
搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
 - HDU1421:搬寝室(线性dp)
		
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1421 又是一道,没有思想的题,看了题解,我发现我的dp题几乎都看了题解,我总是想不好状态转移方程,汗颜,以 ...
 - hdu1421 搬寝室(dp)
		
此题是动态规划题. 解题思路: 用w[i]存储n个物品的重量,对其进行排序. 那么当取了第i个物品,必然会取第i-1个物品. 令dp[i][j]表示前i个物品,取j对的最小疲劳度. 若取第i个物品 则 ...
 - hdu 1421 搬寝室 (dp)
		
思路分析: dp[i][j] 表示选取到第 i 个 组成了 j 对的最优答案. 当然排序之后 选取相邻两个是更优的. if(i==j*2) dp[i][j] = dp[i-2][j-1] + w[ ...
 - HDU 1421 搬寝室(经典DP,值得经常回顾)
		
搬寝室 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status D ...
 
随机推荐
- qt关键字高亮
			
qt的高亮显示主要是使用qsyntaxhighlighter类,由于qsyntaxhighlighter是抽象基类,所以需要继承并自己实现 //头文件 #ifndef MARKDOWN_HIGHLIG ...
 - csdn博客被删除联系客服恢复
			
前几天写了篇"如何使用shadowsocksFQ",居然被删除,我很郁闷,客服给我的回答是"影响了客户体验,网安查的严,不能带有FQ的信息出现" 我一直很郁闷, ...
 - MQ NameServer模块划分
			
上图是之前讨论确定的系统架构(后续内容会按照这个架构来叙述),其中: NameServer做Broker的服务发现,即客户端可以通过NameServer拿到Broker的信息 Broker汇报数据到N ...
 - 历年NOIP选题题解汇总
			
联赛前上vijos板刷往年联赛题,使用在线编辑编写代码,祝我rp++. 废话不多说,挑比较有意思的记一下. 题目是按照年份排序的,最早只到了03年. 有些题目因为 我还没写/很早之前写的忘了 所以就没 ...
 - sort 命令详解
			
sort 作用:将文本文件内容加以排序,sort可针对文本文件的内容,以行为单位来排序 参数: -b 忽略每行前面开始出的空格字符. -c 检查文件是否已经按照顺序排序. -d 排序时,处理英文字 ...
 - Kotlin——最详细的抽象类(abstract)、内部类(嵌套类)详解
			
如果您对Kotlin很有兴趣,或者很想学好这门语言,可以关注我的掘金,或者进入我的QQ群大家一起学习.进步. 欢迎各位大佬进群共同研究.探索QQ群号:497071402 进入正题 在前面几个章节中,详 ...
 - tideways+xhgui搭建php 7的性能测试环境
			
前言 我之前使用的是xhprof+xhgui分析线上环境的性能,然而PHP版本升级到PHP 7之后,xhprof已经不可用,于是改用tideways+xhgui,这实际上也是PHP7下开源方案的唯一选 ...
 - Oracle12c_安装1——准备工作
			
1.建议用户和组 su root #切换到root groupadd oinstall #创建用户组oinstall groupadd dba #创建用户组dba useradd -g oinstal ...
 - 解决Windows和Linux使用npm打包js和css文件不同的问题
			
1.问题出现 最近公司上线前端H5页面,使用npm打包,特别奇怪的是每次打包发现css和js文件与Windows下打包不一致(网页使用Windows环境开发),导致前端页面功能不正常. 2.问题排查 ...
 - Ansible 系列之 Patterns
			
Ansible 之 Patterns 1.Ansible中的Patterns决定了我们要管理哪个主机,意思是与哪些主机进行交互. 我们将在Ad-Hoc(Ad-Hoc 是指 临时执行的命令,要结合着模块 ...