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

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

Posted by wangyues at 2015-10-10 09:20:41 on Problem 1384
In Reply To:帮忙看下,我觉得贪心也满足条件吧。也出不了什么不对的数据了 Posted by:dynamic_study at 2009-09-04 18:42:58
> #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