1 条题解
-
0
#include <bits/stdc++.h> using namespace std; struct coin{ int n,v; //n代表 重量 v代表价值 double nv; // 每公斤价值 }; bool cmp(coin x,coin y){ return x.nv>y.nv; } int main(){ int k,w,s; double sum=0; cin>>k; for(int i=1;i<=k;i++){ cin>>w; cin>>s; sum=0; vector<coin> a(s); for(int j=0;j<s;j++){ cin>>a[j].n>>a[j].v; a[j].nv= a[j].v*1.0 / a[j].n; } sort(a.begin(),a.end(),cmp); for(int j=0;j<s;j++){ if(a[j].n<=w){ sum+=a[j].v; w-=a[j].n; }else{ sum+= a[j].nv * w; break; } } cout<<fixed<<setprecision(2)<<sum<<endl; } return 0; }
- 1
信息
- ID
- 410
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 34
- 已通过
- 21
- 上传者