hdu1421(线性DP)
来源:互联网 发布:读书看报软件 编辑:程序博客网 时间:2024/05/01 14:12
http://acm.hdu.edu.cn/showproblem.php?pid=1421
题意:n件物体里面,取2*k件(每次2件),每次疲劳度为两件物体质量差的平方,求结束后的最小疲劳度
分析:dp[i][j]来表示在前i见物品中选取j对的最少花费。
分析:先把重物按质量大小排序一个物品只有可能跟其质量相邻的物品一起拿,质量差的平方才最小(贪心预处理)
分析:现在就可以列出动态方程dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+(weight[i-2]-weight[i-1])*(weight[i-2]-weight[i-1]));
#include <stdio.h>#include <string.h>#include <math.h>#include <algorithm>using namespace std;int dp[2005][1005],weight[2005];int main(){ int n,k; while(scanf("%d%d",&n,&k)!=EOF){ for(int i=0;i<n;i++) scanf("%d",&weight[i]); sort(weight,weight+n); memset(dp,0x3f,sizeof(dp)); for(int i=0;i<=n;i++)dp[i][0]=0; for(int i=2;i<=n;i++) for(int j=1;j<=k&&j*2<=i;j++) dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+(weight[i-2]-weight[i-1])*(weight[i-2]-weight[i-1])); printf("%d\n",dp[n][k]); } return 0;}
0 0
- hdu1421(线性DP)
- hdu1421(线性DP)搬寝室
- hdu1421 搬寝室 【线性DP】
- hdu1421(纯dp)
- hdu1421 搬寝室(dp)
- HDU1421(DP)
- hdu1421(DP)
- hdu1421(dp)
- 【ACM】hdu1421 搬寝室 (简单DP)
- hdu1421-搬寝室 (经典dp)
- hdu1421 搬寝室(普通DP)
- 【DP】HDU1421 搬寝室
- hdu1421 搬寝室(dp)
- hdu1421搬寝室 DP
- hdu1421经典dp
- hdu1421 搬寝室--DP
- HDU1421 搬寝室(DP)
- hdu1421 搬寝室 DP
- c语言实现函数给主函数中的指针赋值的方法
- Quartz2d从易到难全解析---图片截屏
- Fragment的基础知识
- iOS设备中WiFi、蓝牙和飞行模式的开启与关闭(私有API)
- Android 深入理解Android中的自定义属性
- hdu1421(线性DP)
- Aplication简单使用示例
- [MFC学习笔记]--lesson8 对话框的设计
- 算法学习之排序:冒泡算法
- mongodb启动参数
- java.lang.NoClassDefFoundError:的处理
- wince 系统的数据采集器读取扫描数据并上传
- JSOI2013 旅行时的困惑
- Deep Learning(深度学习)学习笔记整理系列之(三)