HDU 2191 珍惜现在,感恩生活 (多重背包)
来源:互联网 发布:我的淘宝展现词是0个 编辑:程序博客网 时间:2024/05/21 09:39
#include<iostream>#include<cstdio>using namespace std;struct rice{ int p; int h;}rice[505];int max(int a,int b) { return a>b?a:b;}int main(){ int t,n,m,p,h,c,i,j,f[101],k; cin>>t; while(t--){ scanf("%d%d",&n,&m); k=0; for(i=0;i<m;i++) { scanf("%d%d%d",&p,&h,&c); j=1; while(j<=c){ rice[k].p = j*p; rice[k++].h=j*h; c-=j; j=j*2; } rice[k].p = c*p; rice[k++].h = c*h; } for(i=0;i<=n;i++) f[i]=0; for(i=0;i<k;i++) for(j=n;j>=rice[i].p;j--) f[j]=max(f[j],f[j-rice[i].p]+rice[i].h); cout<<f[n]<<endl; } return 0;}
原来这就叫多重背包,用二进制把它简化放入rice[]就是01了状态:f[j]:j是所花的经费状态转移:f[j]=max{f[j],f[j-rice[i].p]+rice[i].h}
0 0
- HDU 2191 珍惜现在,感恩生活(多重背包)
- [ACM] hdu 2191 珍惜现在,感恩生活 (多重背包)
- HDU 2191 珍惜现在,感恩生活(多重背包)
- HDU 2191 珍惜现在,感恩生活 (多重背包)
- Hdu 2191 珍惜现在,感恩生活 (多重背包)
- HDU 2191 珍惜现在,感恩生活 多重背包 .
- 珍惜现在,感恩生活(多重背包)
- HDOJ 2191 珍惜现在,感恩生活(多重背包)
- HDU-2191 珍惜现在,感恩生活(多重背包,二进制优化)
- 珍惜现在,感恩生活-多重背包问题
- HDU 2191 珍惜现在,感恩生活。将多重背包经二进制划分变为01背包。
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包转01背包)
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 多重背包
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 多重背包
- hdu 2191悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (多重背包)
- hdu 2191 (多重背包)悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- iOS开发--Objective-C之KVC
- HDU 悼念512汶川大地震遇难同胞——老人是真饿了 (贪心)
- Require.js、Angular.js整合
- 在用opencv实现从视频中读取图片,并保存下来,但是获取的图片都是黑色的!!!
- 关于Android四大组件之一Service
- HDU 2191 珍惜现在,感恩生活 (多重背包)
- Java基础之基础语法
- sqlserver 查找某个字符在字符串中第N次出现的位置
- 路径规划算法学习网址
- xcode6下使用autolayout+sizeclass实践
- java学习笔记(六):关于iterator.next()
- C#属性和索引器
- ARM基础系列——ARM指令集
- HDU 迷瘴 (贪心)