HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解)
来源:互联网 发布:阿里云资源编排 编辑:程序博客网 时间:2024/05/22 17:23
HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解)
题意分析
要先排序,在做01背包,否则不满足无后效性,为什么呢?
等我理解了再补上。
代码总览
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define nmax 505#define nn 505*100using namespace std;struct item{ int p; int q; int v; int rate;}a[nmax];int dp[nn];bool cmp(item x, item y){ return x.rate<y.rate;}int main(){ //freopen("in.txt","r",stdin); int N,M; while(scanf("%d%d",&N,&M)!= EOF){ memset(dp,0,sizeof(dp)); for(int i = 1; i<= N;++i) {scanf("%d%d%d",&a[i].p,&a[i].q,&a[i].v); a[i].rate = a[i].q - a[i].p;} sort(a+1,a+1+N,cmp); for(int i = 1; i<=N;++i){ for(int j =M;j>=a[i].q;--j) dp[j] = max(dp[j],dp[j-a[i].p]+a[i].v); } printf("%d\n",dp[M]); } return 0;}
0 0
- HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解)
- hdu3466_01背包变形 理解无后效性
- UVA 562 Dividing coins(dp + 01背包)
- UVA 562 Dividing coins(DP:01背包)
- UVA.562 Dividing coins (DP 01背包)
- HDU 3466 Proud Merchants(变种01背包 + 无后效性)
- HDU 3466 Dividing coins 01背包变形+技巧
- 较难处理的背包问题+无后效性的深入理解(09年多校)(3008)
- 3466Proud Merchants(需消除后效性的01背包)
- UVA 562 Dividing coins(01背包+平衡问题) @未理解
- Dividing coins+uva+01背包
- HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化)
- Dividing coins - UVa 562 dp背包
- HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化)
- (DP,多重背包) Coins --HDOJ
- HDU 1059 Dividing 【DP背包】
- hdu 5035 指数分布无后效性
- hdoj 1059 Dividing【DP-多重背包】
- JAVA 入坑教程 | 章节四 修饰符
- 一个web应用的诞生(5)--数据表单
- TensorFlow和Caffe、MXNet、Keras等其他深度学习框架的对比
- 高阶篇:2)概念设计
- 流和序列化(二)--流的类型体系
- HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解)
- Mysql数据库表的自增主键ID号乱了,需要重新排列
- WebService入门
- replace()可以接受回调函数
- 多线程之线程同步
- 算法训练 Torry的困惑(基本型)
- git使用教程简介指令版
- 专利基本知识及撰写要求
- eclipse使用可能出现的问题(1.工作空间2.tomcat删除不能重建3导入项目报错)