7 条题解
-
0
70%,不知道哪里错了,有佬能帮看看嘛
#include <bits/stdc++.h> using namespace std; struct Gold { int m; int v; double aver; bool operator<(const Gold& other) const { return aver < other.aver; } }; int main() { int N, T; int m, v; cin >> N >> T; double sum = 0; priority_queue<Gold> q; for(int i = 0; i < N; i++) { cin >> m >> v; q.push({m, v, (double)v/m}); } while(T > 0) { Gold g = q.top(); q.pop(); // 背包能装下现在的所有金币 if(T > g.m) { sum += g.v; } else { sum += T * g.aver; } T -= g.m; } printf("%.2lf", sum); }
信息
- ID
- 77
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 474
- 已通过
- 119
- 上传者