解题思路:
注意事项:
参考代码:
#include<bits/stdc++.h> using namespace std; struct a{ double mi,vi,zi; }b[10000]; double k,w,maxs=0;int n,s; bool cmp(a c,a d){ return c.zi>d.zi; } int main(){ cin>>k; for(int i=0;i<k;i++){ cin>>w>>s; maxs=0; for(int j=1;j<=s;j++){cin>>b[j].mi>>b[j].vi; b[j].zi=b[j].vi/b[j].mi;} sort(b+1,b+1+s,cmp); for(int j=1;j<=s;j++){ if(b[j].mi>=w){ maxs+=b[j].zi*w;break; }else{ w-=b[j].mi; maxs+=b[j].vi; } } cout<<fixed<<setprecision(2)<<maxs<<" "; } return 0; }
0.0分
1 人评分
C二级辅导-等差数列 (C语言代码)浏览:584 |
C语言程序设计教程(第三版)课后习题12.3 (C语言代码)浏览:823 |
数列排序 (C语言代码)浏览:830 |
C语言训练-计算1~N之间所有奇数之和 (C语言代码)浏览:647 |
WU-小九九 (C++代码)浏览:1684 |
蚂蚁感冒 (C语言代码)浏览:769 |
C语言训练-亲密数 (C语言描述,反正怎么都能对)浏览:2165 |
C语言训练-8除不尽的数 (C语言代码)浏览:1398 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:608 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:559 |