hdoj FatMouse' Trade 1009 (多重背包)

原创 2015年11月19日 12:16:25

FatMouse' Trade

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 57207    Accepted Submission(s): 19174


Problem Description
FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean.
The warehouse has N rooms. The i-th room contains J[i] pounds of JavaBeans and requires F[i] pounds of cat food. FatMouse does not have to trade for all the JavaBeans in the room, instead, he may get J[i]* a% pounds of JavaBeans if he pays F[i]* a% pounds of cat food. Here a is a real number. Now he is assigning this homework to you: tell him the maximum amount of JavaBeans he can obtain.

Input
The input consists of multiple test cases. Each test case begins with a line containing two non-negative integers M and N. Then N lines follow, each contains two non-negative integers J[i] and F[i] respectively. The last test case is followed by two -1's. All integers are not greater than 1000.

Output
For each test case, print in a single line a real number accurate up to 3 decimal places, which is the maximum amount of JavaBeans that FatMouse can obtain.

Sample Input
5 3 7 2 4 3 5 2 20 3 25 18 24 15 15 10 -1 -1

Sample Output
13.333 31.500
 
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct zz
{
	int v;
	int w;
	double c;
}q[1010];
int cmp(zz a,zz b)
{
	return a.c>b.c;
}
int main()
{
	int n,m,i,j;
	while(scanf("%d%d",&m,&n),n!=-1&&m!=-1)
	{
		for(i=1;i<=n;i++)
		{
			scanf("%d%d",&q[i].v,&q[i].w);
			q[i].c=q[i].v*1.0/q[i].w;
		}
		sort(q+1,q+n+1,cmp);
		double sum=0;
		for(i=1;i<=n;i++)
		{
			if(q[i].w<=m)
			{
				sum+=q[i].v;
				m-=q[i].w;
			}
			else
			{
				sum+=m*q[i].c;
				break;
			}
		}
		printf("%.3lf\n",sum);
	}
	return 0;
}

FatMouse' Trade(贪心算法)

FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)...
  • baidu_23955875
  • baidu_23955875
  • 2014年12月15日 17:24
  • 1083

中级篇——背包问题3(多重背包)

上一篇讲的完全背包是指在所有物品件数无限多的情况下选择最值,现在引申出多重背包问题,即各物品个数均有限且不一定相同,求轙类情况下的最值。...
  • chuck001002004
  • chuck001002004
  • 2015年12月17日 14:01
  • 3856

01背包,完全背包,多重背包的个人总结

大一刚接触背包问题的时候就觉得绕。那时候真的是一点代码基础都没有强行去理解。每次都是以失败告终,一直到大二都还不会写背包问题。 后来某次模拟赛之后碰到了背包问题,觉得这个还是挺简单的,终于是下定决心准...
  • tinyguyyy
  • tinyguyyy
  • 2016年04月20日 22:08
  • 1534

HDOJ 1009 FatMouse' Trade

FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)...
  • kdwycz
  • kdwycz
  • 2013年03月14日 15:17
  • 598

FatMouse' Trade<hdoj1009>

Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats guarding t...
  • KingJordon
  • KingJordon
  • 2016年07月22日 21:31
  • 132

HDOJ 1009 FatMouse' Trade 贪心算法

首先先看懂题目,然后对题目要有深入理解,知道考查的是贪心算法。 题意:老鼠要去用猫食去换java豆,每个房间有一定的豆和猫食,J[i] and F[i] ,这既是每个房间的上限,也是兑换比率。 所...
  • huatian5
  • huatian5
  • 2016年01月11日 16:11
  • 503

HDOJ 1009 FatMouse' Trade (胖老鼠和猫做生意,贪心)

FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other...
  • shyazhut
  • shyazhut
  • 2016年07月23日 16:45
  • 289

ACM--猫鼠交易--贪心--HDOJ 1009--FatMouse' Trade

HDOJ题目地址:传送门 FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/3...
  • qq_26891045
  • qq_26891045
  • 2016年05月27日 13:54
  • 916

zoj 2109 || hdoj1009 FatMouse' Trade(贪心)

题意: M  N J[i]  F[i] fatmouse有M克猫粮(类似吧),现在有个房间,F[i]  pounds 猫粮 可以换 J[i] pounds javabeans. (hdoj的d...
  • cqlf__
  • cqlf__
  • 2011年11月28日 07:53
  • 1494

【ACM】HDOJ 1009 FatMouse' Trade

贪心算法一个应用
  • TinyJian
  • TinyJian
  • 2015年09月25日 21:59
  • 481
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdoj FatMouse' Trade 1009 (多重背包)
举报原因:
原因补充:

(最多只允许输入30个字)