UVA - 10465 Homer Simpson 01背包问题(无限)
2014-11-11 23:45
246 查看
题目大意:有两种汉堡,吃第一个汉堡要花T1的时间,吃第二个要花T2的时间,要求再规定的时间内尽量把时间用光去吃汉堡,如果时间用不光的话,就把多余的时间花去喝酒,求如果时间都用光的话,吃了几个汉堡,如果用不光的话,就把喝的酒数也输出来
解题思路:01背包的无限物品问题,用一维数组解决
解题思路:01背包的无限物品问题,用一维数组解决
#include<cstdio> #include<algorithm> #include<cstring> using namespace std; #define maxn 10005 int t[3]; int nu; int dp[maxn]; int num[maxn]; int main() { while(scanf("%d", &t[1]) != EOF) { scanf("%d",&t[2]); scanf("%d",&nu); memset(dp,0,sizeof(dp)); memset(num,0,sizeof(num)); int i , j; for( i = 1; i <= 2; i++) for( j = t[i] ; j <= nu; j++) { if(dp[j-t[i]] + t[i] > dp[j] ) { dp[j] = dp[j-t[i]] + t[i]; num[j] = num[j-t[i]] + 1; } else if(dp[j-t[i]] + t[i] == dp[j] && num[j-t[i]] + 1 > num[j]) num[j] = num[j-t[i]] + 1; } if(dp[nu] == nu) printf("%d\n",num[nu]); else printf("%d %d\n", num[nu],nu-dp[nu]); } return 0; }
相关文章推荐
- UVA 10465 0-1背包(无限) (DAG动态规划)
- [UVA]10465 - Homer Simpson(完全背包问题)
- uva 10465(背包问题)
- 1.6.1 3n+1问题 UVA100
- 饼状图的改进(解决零值和数值无限小的显示问题)
- uva 10465 Homer Simpson
- UVa Problem 10104 Euclid Problem (欧几里德问题)
- UVa 624 CD && joj 1387 CD 背包问题
- 求助TCanvas内存无限涨的问题
- 思想:有限的智力解决无限的问题(17)
- 惠普4416s商务笔记本无限网卡问题
- 无限分层问题
- UVA 10465 - Homer Simpson
- UVA 369题Combinations(一个排列组合问题)
- UVa 10465 - Homer Simpson
- UVA-694-限制性的3n+1问题
- Vista升级Windows7存在问题,导致无限重启
- visual studio.net2003安装无限重启问题
- UVA 10465 Homer Simpson
- 控件一:Gallery 之无限循环的问题