题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1009
题目大意:和N只猫做生意。付Fi猫食得Ji豆子或者付部分猫食得相应比例的豆子。你有M个猫食问最多能得到多少豆子。
关键思想:按性价比排序,简单贪心
代码如下:
//结构体排序,简单贪心 #include#include using namespace std;int M,N;double ans;struct room{ int b,c; double bc;}eg[10010];bool cmp(room a,room b){ return a.bc>b.bc;}int main() { while(cin>>M>>N&&M!=-1){ ans=0; for(int i=0;i >eg[i].b>>eg[i].c; eg[i].bc=(double)(eg[i].b)/(eg[i].c); } sort(eg,eg+N,cmp); for(int i=0;i =eg[i].c){ M-=eg[i].c;ans+=eg[i].b; } else if(M