Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

帮忙看下,我觉得贪心也满足条件吧。也出不了什么不对的数据了

Posted by dynamic_study at 2009-09-04 18:42:58 on Problem 1384
#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
	int p;
	int w;
	double rate;
	bool operator<(const node &a) const
	{
        if(rate<a.rate)
			return true;
		else if(rate==a.rate)
		{
			if(p>a.p)
				return true;
		}
			return false;

	}
}coin[501];
int main()
{
	int w1,w2,total,i,n,money,num,t;
	cin>>t;
	while(t--){
	cin>>w1>>w2;
	total=w2-w1;
	cin>>n;
	for(i=0;i<n;i++)
	{
		cin>>coin[i].p>>coin[i].w;
		coin[i].rate=(double)(coin[i].p)/(double)coin[i].w;
	}
	if(total<=0)
	{
		printf("The minimum amount of money in the piggy-bank is 0.\n");
		continue;
	}
	sort(coin,coin+n);
	bool flag=false;
	money=0;
	for(i=0;i<n;i++)
	{
		if(total%coin[i].w==0)
		{
			money+=coin[i].p*(total/coin[i].w);
			total=0;
			flag=true;
		}
		else
		{
			num=total/coin[i].w;
			if(num<=0)
				continue;
			money+=num*coin[i].p;
			total-=num*coin[i].w;
		}
		if(total==0)
		{
			flag=true;
			break;
		}
	}
	if(flag)
		printf("The minimum amount of money in the piggy-bank is %d.\n",money);
	else
		printf("This is impossible.\n");

	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator