| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:帮忙看下,我觉得贪心也满足条件吧。也出不了什么不对的数据了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: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator