hdu 1421:搬寝室(动态规划 DP + 排序)
搬寝室
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 14107 Accepted Submission(s): 4751
1 3
- dp[i][j] = Min ( dp[i-2][j-1] + (a[i]-a[i-1]) * (a[i]-a[i-1]) , dp[i-1][j] ) ;
dp[i][j]代表在前 i 个物品中取 j 对搬运的最小疲劳值。
思路我就不写了,因为我的思路不甚清晰,所以就贴上别人的链接,有兴趣的可以看看高人写的:
HDU 1421 搬寝室 hdu1421n中选k个不相邻数的最小值 hdu 1421 搬寝室
我想说的是要注意两点,一开始我用的自己写的冒泡排序,后来提交超时,看网上的代码大都直接调用了库函数(像qsort、sort函数),我改用sort函数之后不再超时,说明好的排序算法在做题中还是很有用处的!之后出现WA的现象,调试发现这是dp数组初始化不对造成的,因为要比较大小,需要取较小值,所以应该初始化为一个极大值(例如9999999),而且dp[i][0]这一溜的数需要初始化为0。
下面是代码:
- #include <iostream>
- #include <algorithm>
- #include <string.h>
- using namespace std;
- int dp[][];
- int Min(int a,int b)
- {
- //if(a==0)
- // return b;
- //if(b==0)
- // return a;
- return a<b?a:b;
- }
- int main()
- {
- int n,k;
- while(cin>>n>>k){
- int a[];
- for(int i=;i<=n;i++)
- cin>>a[i];
- //排序
- /* 冒泡排序超时
- for(int i=1;i<=n-1;i++)
- for(int j=1;j<=n-i;j++)
- if(a[j]>a[j+1]){
- int t;
- t=a[j];a[j]=a[j+1];a[j+1]=t;
- }
- */
- sort(a+,a++n);
- //初始化
- memset(dp,,sizeof(dp));
- for(int i=;i<=n;i++)
- dp[i][] = ;
- //实现dp数组
- for(int i=;i<=n;i++)
- for(int j=;j<=i/;j++){
- dp[i][j] = Min(dp[i-][j-]+(a[i]-a[i-])*(a[i]-a[i-]),dp[i-][j]);
- }
- cout<<dp[n][k]<<endl;
- }
- return ;
- }
Run ID | Submit Time | Judge Status | Pro.ID | Exe.Time | Exe.Memory | Code Len. | Language | Author |
10011975 | 2014-01-22 20:13:55 | Accepted | 1421 | 750MS | 8228K | 750 B | G++ | freecode |
Freecode : www.cnblogs.com/yym2013
hdu 1421:搬寝室(动态规划 DP + 排序)的更多相关文章
- 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)
思路分析: dp[i][j] 表示选取到第 i 个 组成了 j 对的最优答案. 当然排序之后 选取相邻两个是更优的. if(i==j*2) dp[i][j] = dp[i-2][j-1] + w[ ...
- 题解报告:hdu 1421 搬寝室(递推dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1421 Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9 ...
- 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 ...
- hdu 1241 搬寝室 水dp
搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Desc ...
- [HDU 1421]搬寝室(富有新意的DP)
题目地址:pid=1421" target="_blank">http://acm.hdu.edu.cn/showproblem.php? pid=1421 题目大 ...
随机推荐
- android 利用cmdline,将參数从preloader传递到kernel
以定义參数 cus_param 为例.int型变量. 1. Preloader部分 Platform.h(mediatek\platform\[$platform]\preloader\src\dri ...
- C#:xml操作(待补充)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.X ...
- 【Android UI设计与开发】使用ViewPager实现欢迎引导页面
一.实现的效果图 每次看别人的代码前,必需要先看实现的效果图达到了一个什么样的效果,是不是跟自己想要实现的效果类似.有图才有真相嘛,同一时候,最下方有源代码的下载地址,差点儿源代码的每一行都有凝视,写 ...
- ISP图像质量调节介绍
ISP(Image Signal Processor),即图像处理,主要作用是对前端图像传感器输出的信号做后期处理,主要功能有线性纠正.噪声去除.坏点去除.内插.白平衡.自己主动曝光控制等.依赖于IS ...
- 常见的安装包制作程序installer
1. Windows安装程序制作工具 NSISNSIS (Nullsoft Scriptable Install System) 是一个专业开源的制作 windows 安装程序的工具.http://n ...
- Spring学习10-SpringMVC入门
二.SpringMVC请求处理流程 其中Front controller :前端控制器 Controller:后端控制器 三.Spring核心组件及请求处理流程
- Python @ddt.file_data() 为.yml 文件实例
一,创建login.yml 文件(以登录接口为例) 1,创建 login.yml 文件,内容如下图: 打印login.yml 文件,代码及显示效果如下: 代码: import yaml,jsonf = ...
- Lucene:基于Java的全文检索引擎简介 (zhuan)
http://www.chedong.com/tech/lucene.html ********************************************** Lucene是一个基于Ja ...
- Flume线上日志采集【模板】
Flume线上日志采集[模板] 预装软件 Java HDFS Lzo/Lzop 系统版本 Flume 1.5.0-cdh5.4.0 系统流程图 flume-env.sh配置文件 export JAVA ...
- javac使用笔记
一般写java都用的IDE,今天临时要测试一下JDK安装好没,就用了一下javac,结果各种不会用 目录 javac -help查到了有javac -sourcepath,他喵的我还以为这是查找sou ...