2013腾讯编程马拉松初赛第〇场(3月20日)小明系列故事——买年货
2013-07-28 10:59
330 查看
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4501
思路:三维01背包~dp[i][j][k]表示用i的现金,j的积分,k次免费能买到的最大价值,逆序遍历优化空间复杂度。
思路:三维01背包~dp[i][j][k]表示用i的现金,j的积分,k次免费能买到的最大价值,逆序遍历优化空间复杂度。
#include <iostream> #include <cstring> #include <cstdio> using namespace std; const int maxn=105; int a[maxn],b[maxn],w[maxn]; int dp[maxn][maxn][6]; int main() { int n,v1,v2,k; while(cin>>n>>v1>>v2>>k) { for(int i=0;i<n;i++) cin>>a[i]>>b[i]>>w[i]; memset(dp,0,sizeof(dp)); for(int i=0;i<n;i++) { for(int p=v1;p>=0;p--) { for(int q=v2;q>=0;q--) { for(int j=k;j>=0;j--) { int tmp=dp[p][q][j]; if(p>=a[i]){ tmp=max(tmp,dp[p-a[i]][q][j]+w[i]); } if(q>=b[i]){ tmp=max(tmp,dp[p][q-b[i]][j]+w[i]); } if(j>=1){ tmp=max(tmp,dp[p][q][j-1]+w[i]); } dp[p][q][j]=max(tmp,dp[p][q][j]); } } } } cout<<dp[v1][v2][k]<<endl; } return 0; }
相关文章推荐
- 2013腾讯编程马拉松初赛第〇场(3月20日) 吉哥系列故事——临时工计划---带权重的区间规划
- 2013腾讯编程马拉松初赛第〇场(3月20日) 小Q系列故事——屌丝的逆袭
- 2013腾讯编程马拉松初赛第〇场(3月20日)HDOJ 4504 威威猫系列故事——篮球梦
- 2013腾讯编程马拉松初赛第〇场(3月20日)湫湫系列故事——植树节 HDOJ 4503
- 2013腾讯编程马拉松初赛第〇场(3月20日)湫湫系列故事——植树节 HDOJ 4503
- 2013腾讯编程马拉松初赛第〇场(3月20日) 吉哥系列故事——临时工计划---带权重的区间规划
- 2013腾讯编程马拉松初赛第〇场(HDU 4503) 湫湫系列故事——植树节
- 2013腾讯编程马拉松初赛第一场(3月21日)小明系列故事——师兄帮帮忙
- 2013腾讯编程马拉松初赛第〇场(HDU 4503) 湫湫系列故事——植树节
- 2013腾讯编程马拉松初赛第〇场(HDU 4504)威威猫系列故事——篮球梦
- 2013腾讯编程马拉松初赛第〇场(HDU 4504)威威猫系列故事——篮球梦
- HDU 4500 小Q系列故事——屌丝的逆袭 2013腾讯编程马拉松初赛第〇场第一题
- 2013腾讯编程马拉松初赛第一场(3月21日) 小明系列故事——师兄帮帮忙 !!快速幂取摸
- HDOJ4501 小明系列故事——买年货(三维多重背包变形)&& 腾讯2013编程马拉松第0场第二题
- HDU 4527 小明系列故事——玩转十滴水 2013腾讯编程马拉松初赛第五场第二题
- 2013腾讯编程马拉松初赛第二场(3月22日) 小Q系列故事——为什么时光不能倒流
- 2013腾讯编程马拉松初赛第一场(3月21日)湫湫系列故事——减肥记I
- 2013腾讯编程马拉松初赛第〇场(3月20日)(HDU 4500 4501 4502 4503 4504)
- 2013腾讯编程马拉松初赛第一场(3月21日)小Q系列故事——电梯里的爱情
- 2013腾讯编程马拉松初赛第一场(3月21日) 湫湫系列故事——减肥记II ----线段树