您的位置:首页 > 其它

HDOJ2187悼念512汶川大地震遇难同胞(贪心,硬币问题)

2017-08-13 15:30 323 查看
贪心算法

要想买到最多的大米,选性价比高的先买,然后看剩余的钱进行比较,选择买大米。和HDOJ 1070,老鼠用猫粮换取自己喜欢的食物类似。

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct rice{
double price;
double weight;
}a[1010];

int cmp(rice a,rice b){
return a.price <b.price;
}
int main(){
int t;
cin>>t;
while(t--){
int sum,n;
cin>>sum>>n;
int i;
for(i=0;i<n;i++){
cin>>a[i].price >>a[i].weight;
}
sort(a,a+n,cmp);
double k=0;
for(i=0;i<n;i++){
if(sum>a[i].price*a[i].weight){
sum-=a[i].price*a[i].weight ;
k+=a[i].weight;
}
else{
k+=sum/a[i].price;
break;
}
}
printf("%.2lf\n",k);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐