HDU 1009 FatMouse' Trade

来源:互联网 发布:shell在哪编程 编辑:程序博客网 时间:2024/06/06 05:46

用贪心:

#include<iostream>#include<algorithm>using namespace std;struct fat{int j;int f;double p;}mouse[1001];bool cmp(fat& a, fat& b){return a.p>b.p;}int main(){int m,n;while(cin>>m>>n,n!=-1&&m!=-1){for(int i=0;i<n;i++){cin>>mouse[i].j>>mouse[i].f;mouse[i].p=mouse[i].j*1.0/mouse[i].f;}double sum=0.0;sort(mouse,mouse+n,cmp);for(int i=0;i<n;i++){if(m==0) break;if(m>=mouse[i].f){sum+=mouse[i].j;m=m-mouse[i].f;}else{sum+=m*1.0/mouse[i].f*mouse[i].j;m=0;}}printf("%.3lf\n",sum);}return 0;}


原创粉丝点击