贪心算法1111111111
【题目信息】【代码】1.要注意的点 在输入两个数字的时候一定要看输入反了吗2.而且一元能买多少毫升 其中分子是毫升 分母是钱数3.多组输入 最后是printf也要注意是否要换行4.当你所能买到的毫升小于它本身具有的 就可以结束了 因为钱都花完了#includeiostream #includestring #includealgorithm #includecctype #includecmath #includevector #includesstream #includemap //#includestlib 随机 using namespace std; struct drink{ double m; double w; double v; }s[1005]; bool cmp(drink a,drink b){ return a.vb.v; } int main(){ int x,n; while(cinxn){//n种饮料 if((n-1)(x-1)){ break; } for(int i0;in;i){ cins[i].ms[i].w; s[i].v(s[i].w)/(s[i].m);// 1元钱能买多少毫升 } sort(s,sn,cmp);//性价比从高到低 double result0.0;//专门用来计算多少毫升 double temp0.0;//用来判断是否足够 for(int i0;in;i){ //大约买第一个能买多少 tempx*(s[i].v);//最多能买多少毫升 则这么多钱是多少毫升 if(temps[i].m){//如果小于库存 已经x0了 x0; resulttemp; break; } else{//如果你能买的毫升数他达不到 就按他最大的来计算 x-s[i].w; results[i].m; } } printf(%.3lf,result); } return 0;}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2444814.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!