uvaoj 10465 - Homer Simpson 物品无限的完全背包
2014-11-17 09:05
281 查看
10465 - Homer
Simpson
一个人十分喜爱吃某种类型的食物,现在有两种类型的食物,这个人吃掉一个第一种的食物花费m分钟,吃掉另外一种花费n分钟,现在给t分钟的时间,求在不浪费一分钟的时间可以最多吃掉多少种这两种食物,输出这个数量,如果不得不浪费时间,就输出最多吃食物的数量和最少要浪费的时间.
这是个完全背包,并且物品的数量是无限的,用dp[i]表示有i分钟的时间而且不浪费时间的情况下最多能吃掉多少食物,我们用-1表示时间i不得不浪费时间.转移方程就是dp[i]=max(dp[i], dp[i - n] + 1).
代码如下:
Simpson
一个人十分喜爱吃某种类型的食物,现在有两种类型的食物,这个人吃掉一个第一种的食物花费m分钟,吃掉另外一种花费n分钟,现在给t分钟的时间,求在不浪费一分钟的时间可以最多吃掉多少种这两种食物,输出这个数量,如果不得不浪费时间,就输出最多吃食物的数量和最少要浪费的时间.
这是个完全背包,并且物品的数量是无限的,用dp[i]表示有i分钟的时间而且不浪费时间的情况下最多能吃掉多少食物,我们用-1表示时间i不得不浪费时间.转移方程就是dp[i]=max(dp[i], dp[i - n] + 1).
代码如下:
/************************************************************************* > File Name: 10465.cpp > Author: gwq > Mail: 457781132@qq.com > Created Time: 2014年11月17日 星期一 08时37分18秒 ************************************************************************/ #include <cmath> #include <ctime> #include <cctype> #include <climits> #include <cstdio> #include <cstdlib> #include <cstring> #include <map> #include <set> #include <queue> #include <stack> #include <vector> #include <iostream> #include <algorithm> #define INF (INT_MAX / 10) #define clr(arr, val) memset(arr, val, sizeof(arr)) #define pb push_back #define sz(a) ((int)(a).size()) using namespace std; typedef set<int> si; typedef vector<int> vi; typedef map<int, int> mii; typedef long long ll; #define N 10010 int dp , n, m, t, ans1, ans2; int solve(void) { dp[0] = 0; for (int i = 1; i <= t; ++i) { //表示不能不浪费时间 dp[i] = -1; if (i >= m && dp[i - m] >= 0) { dp[i] = max(dp[i], dp[i - m] + 1); } if (i >= n && dp[i - n] >= 0) { dp[i] = max(dp[i], dp[i - n] + 1); } } ans1 = dp[t]; if (ans1 < 0) { //找出之前能满足的 int i = t; while (ans1 < 0) { ans1 = dp[--i]; } ans2 = t - i; return 0; } else { return 1; } } int main(int argc, char *argv[]) { while (scanf("%d%d%d", &m, &n, &t) != EOF) { if (solve() == 1) { printf("%d\n", ans1); } else { printf("%d %d\n", ans1, ans2); } } return 0; }
相关文章推荐
- UVA 10465 Homer Simpson 完全背包
- UVA 10465 Homer Simpson(完全背包: 二维目标条件)
- UVa 10465 Homer Simpson(DP完全背包)
- UVa 10465 Homer Simpson(DP 完全背包)
- uva 10465 Homer Simpson(完全背包)
- UVa 10465 Homer Simpson(完全背包)
- uva10465- Homer Simpson(完全背包)
- UVA 10465 - Homer Simpson 贪心或完全背包
- uva10465 - Homer Simpson(完全背包)
- UVA 10465 Homer Simpson(dp + 完全背包)
- ACM:动态规划,物品无限的背包问题(完全背包问题)
- 第二讲 完全背包问题——第二个基本的背包问题模型,每种物品可以放无限多次
- UVA 10465 Homer Simpson(dp + 完全背包)
- uva 10465 Homer Simpson(完全背包)
- [UVA]10465 - Homer Simpson(完全背包问题)
- uva 10465 Homer Simpson (完全背包)
- UVA 10465 Homer Simpson(dp + 完全背包)
- UVA 10465 Homer Simpson(完全背包)
- uva 10465 - Homer Simpson(贪心+完全背包)
- UVa 10465 - Homer Simpson DP 完全背包