HDOJ4501 小明系列故事——买年货(三维多重背包变形)&& 腾讯2013编程马拉松第0场第二题
2013-04-15 09:53
417 查看
多维动态规划,背包变形,题目代码比较简单,讲解写在代码注释里
/*HDOJ4501 && 腾讯2013编程马拉松第0场第二题 作者:陈佳润 2013-04-15 */ #include<iostream> using namespace std; int V1,V2,K; int dp[101][101][6]; int max(int a,int b){ if(a>b) return a; return b; } void MZO(int v1,int v2,int v){//三维0/1背包 int i,j,k; for(i=V1;i>=0;i--){//注意此处跟背包的不一样,如果写成i>=v1,j>=v2,k>=1,则是需要三个同时成立 for(j=V2;j>=0;j--){//写成>=0,然后再用if判断则可以达到三者其中之一成立就可以购买 for(k=K;k>=0;k--){ int temp=0; if(i>=v1) temp=max(temp,dp[i-v1][j][k]+v); if(j>=v2) temp=max(temp,dp[i][j-v2][k]+v); if(k>0) temp=max(temp,dp[i][j][k-1]+v); dp[i][j][k]=max(dp[i][j][k],temp); } } } } int main(){ int n,i,v1,v2,v; //freopen("1.txt","r",stdin); while(cin>>n>>V1>>V2>>K){ memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++){ cin>>v1>>v2>>v; MZO(v1,v2,v); } cout<<dp[V1][V2][K]<<endl; } return 0; }
相关文章推荐
- 2013腾讯编程马拉松初赛第〇场(3月20日)小明系列故事——买年货
- HDOJ4500 小Q系列故事——屌丝的逆袭(简单模拟) &&腾讯2013编程马拉松第0场第一题
- HDOJ4502 吉哥系列故事——临时工计划(动态规划)&& 腾讯2013编程马拉松第0场第三题
- HDU 4527 小明系列故事——玩转十滴水 2013腾讯编程马拉松初赛第五场第二题
- HDOJ4505 小Q系列故事——电梯里的爱情(简单模拟) && 腾讯2013编程马拉松第1场第一题
- HDOJ4525 威威猫系列故事——吃鸡腿 (数论) && 腾讯2013编程马拉松第5场第一题
- 2013腾讯编程马拉松初赛第一场(3月21日) 湫湫系列故事——减肥记I hdu 4508--- 完全背包
- 2013腾讯编程马拉松初赛第一场(3月21日) 小明系列故事——师兄帮帮忙 !!快速幂取摸
- 腾讯第二届编程马拉松初赛3月21日晚第二题之小明系列故事——师兄帮帮忙
- 2013腾讯编程马拉松初赛第一场(3月21日)小明系列故事——师兄帮帮忙
- HDU 4501 小明系列故事——买年货(三维背包)
- hdoj--4501--小明系列故事——买年货(三维背包)
- HDU 4501 小明系列故事——买年货(三维背包)
- HDU 4539 2013腾讯编程马拉松复赛第二场 郑厂长系列故事——排兵布阵
- 2013腾讯编程马拉松初赛第一场(3月21日) 小Q系列故事——电梯里的爱情
- 2013腾讯编程马拉松初赛第〇场(3月20日) 吉哥系列故事——临时工计划---带权重的区间规划
- 2013腾讯编程马拉松初赛第二场(3月22日) 小Q系列故事——为什么时光不能倒流 ---好水!!
- 2013腾讯编程马拉松初赛 20130320第一场1001 小Q系列故事——屌丝的逆袭 简单题
- HDU 4508 沼泽湿地系列故事——记住减肥I (2013腾讯编程马拉松预赛第一)
- 2013腾讯编程马拉松初赛第〇场(3月20日)湫湫系列故事——植树节 HDOJ 4503