UVA 10465 Homer Simpson

在t分钟内吃两种耗时不同的汉堡,首先保证耗时最多,然后保证汉堡吃最多,最后剩下的时间喝酒

#include<iostream>
#include<map>
#include<string>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<queue>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
	int a[2];
	int dp[2][10010];
	int i,j,t;
	while(cin>>a[0]>>a[1]>>t)
	{
		memset(dp,0,sizeof(dp));
		for(i=0;i<2;i++)
			for(j=a[i];j<=t;j++)
				if(dp[0][j]<dp[0][j-a[i]]+a[i])
				{
					dp[0][j]=dp[0][j-a[i]]+a[i];
					dp[1][j]=dp[1][j-a[i]]+1;
				}
				else if(dp[0][j]==dp[0][j-a[i]]+a[i])
					dp[1][j]=max(dp[1][j],dp[1][j-a[i]]+1);
		cout<<dp[1][t];
		if(dp[0][t]!=t)
			cout<<" "<<t-dp[0][t];
		cout<<endl;
	}
}

Return of the Aztecs

Problem C: Homer Simpson

Time Limit: 3 seconds

Memory Limit: 32 MB


Homer Simpson, a very smart guy, likes eating Krusty-burgers. It takes Homer m minutes to eat a Krusty- burger. However, there?s a new type of burger in Apu?s Kwik-e-Mart. Homer likes those too. It takes him n minutes to eat one of these burgers. Given
t minutes, you have to find out the maximum number of burgers Homer can eat without wasting any time. If he must waste time, he can have beer.

Input

Input consists of several test cases. Each test case consists of three integers
m, n, t (0 < m,n,t < 10000). Input is terminated by EOF.

Output

For each test case, print in a single line the maximum number of burgers Homer can eat without having beer. If homer must have beer, then also print the time he gets for drinking, separated by a single space. It is preferable that Homer drinks as little
beer as possible.

Sample Input

3 5 54
3 5 55

Sample Output

18
17

时间: 2024-10-12 09:19:54

UVA 10465 Homer Simpson的相关文章

uva 10465 Homer Simpson (完全背包)

uva 10465 Homer Simpson 题目大意:有两种汉堡,给出吃每种汉堡的时间,以及总时间.求出在充分利用时间的前提下,能吃的最多的汉堡数量.当无法利用所有时间时,再在汉堡数量后面输出剩余的时间. 解题思路:完全背包. #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <cstdlib> typedef long lo

UVa 10465 Homer Simpson(DP 全然背包)

 题意 霍默辛普森吃汉堡  有两种汉堡  一中吃一个须要m分钟  还有一种吃一个须要n分钟  他共同拥有t分钟时间    要我们输出他在尽量用掉全部时间的前提下最多能吃多少个汉堡  假设时间无法用完  输出他吃的汉堡数和剩余喝酒的时间 非常明显的全然背包问题  求两次  一次对个数  一次对时间即可了   时间用不完的情况下就输出时间的 d1为个数的  d2为时间的  dt保存时间 #include<cstdio> #include<cstring> #include<a

UVa 10465 Homer Simpson(DP 完全背包)

 题意 霍默辛普森吃汉堡  有两种汉堡  一中吃一个需要m分钟  另一种吃一个需要n分钟  他共有t分钟时间    要我们输出他在尽量用掉所有时间的前提下最多能吃多少个汉堡  如果时间无法用完  输出他吃的汉堡数和剩余喝酒的时间 很明显的完全背包问题  求两次  一次对个数  一次对时间就行了   时间用不完的情况下就输出时间的 d1为个数的  d2为时间的  dt保存时间 #include<cstdio> #include<cstring> #include<algor

UVA 10465 Homer Simpson(完全背包: 二维目标条件)

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1406 题意: 有两种汉堡包(汉堡数量无限多),第一种吃一个需要花n分钟,第二种吃一个需要花m分钟. 现在你有t分钟的时间, 问你最少浪费几分钟不能吃汉堡(你每次要么完整的吃完一个汉堡,要么不吃). 当吃汉堡花费的时间达到最大时, 问你最多能吃几个汉堡? 分析: 本题的限制条件是: 总时间&l

uva10465 - Homer Simpson(完全背包)

题目:10465 - Homer Simpson(完全背包) 题目大意:有个家伙很喜欢吃burger,现在有两种burger,然后给出吃这两种burger的时间,然后问你在指定的时间内,他能吃最多的burger的个数是多少.如果不能够用完的话,那么剩余时间就拿来喝水,要求喝水的时间尽量短. 解题思路:完全背包.状态转移方程:dp[t]在t时间内能吃的最多的burger数目.dp[t + v[i]] = max (dp[t + v[i]],dp[t] + 1). 代码: #include <cst

UVA题目分类

题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics 10300 - Ecological Premium 458 - The Decoder 494 - Kindergarten Counting Game 414 - Machined Surfaces 490 - Rotating Sentences 445 - Marvelous Mazes

算法入门经典大赛 Dynamic Programming

111 - History Grading LCS 103 - Stacking Boxes 最多能叠多少个box DAG最长路 10405 - Longest Common Subsequence LCS 674 - Coin Change 全然背包求方案数 10003  - Cutting Sticks 区间DP dp[l][r]代表分割l到r的最小费用 116 - Unidirectional TSP 简单递推 输出字典序最小解 从后往前推 10131 - Is Bigger Smarte

Android 使用Log4j把日志写入SD卡,动态修改输出文件名称

一.Log4j简单使用 1. 下载log4j.jar http://logging.apache.org/log4j/2.x/ 2. 创建Java代码 public class Loggers { public static Logger logger = Logger. getLogger(Loggers. class); public static void init() { try { PatternLayout patternLayout = new PatternLayout(); p

傅里叶变换的智慧[转]

[转自]https://www.toutiao.com/i6777318172765717006/(版权归原作者所有如有侵权请立即与我联系,我将及时处理) 傅里叶变换(Fourier Transform,有时候被写成“傅立叶变换”)是一个特别常用的数学工具,很可能你已经在大学学过,但我想专门讲讲.傅里叶变换是构建现代科技的一个基础方法,它可以说是无处不在 —— 而我感觉这个操作背后有个智慧,值得每个人深思. 就算你没正式学过,你也很可能听说过“傅里叶变换”这个词.计算机上的声音和图像信号.工程上