本文主要是介绍hdu-4501-小明系列故事——买年货(四维背包),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4501
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;int dp[105][105][105][6];
int main()
{int n,v1,v2,k,a,b,val;while(~scanf("%d%d%d%d",&n,&v1,&v2,&k)){memset(dp,0,sizeof(dp));for(int i=1;i<=n;i++){scanf("%d%d%d",&a,&b,&val);for(int j=0;j<=v1;j++){for(int r=0;r<=v2;r++){for(int d=0;d<=k;d++){dp[i][j][r][d]=max(dp[i][j][r][d],dp[i-1][j][r][d]);//不买第i件物品if(d>=1) dp[i][j][r][d]=max(dp[i][j][r][d],dp[i-1][j][r][d-1]+val);//免费赠送第i件物品if(j>=a) dp[i][j][r][d]=max(dp[i][j][r][d],dp[i-1][j-a][r][d]+val);//花费钱财买第i件物品if(r>=b) dp[i][j][r][d]=max(dp[i][j][r][d],dp[i-1][j][r-b][d]+val);//花费积分买第i件物品}}}}printf("%d\n",dp[n][v1][v2][k]);}
}
这篇关于hdu-4501-小明系列故事——买年货(四维背包)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!