7 条题解
-
2
小李子看好,这才叫题解
#include<bits/stdc++.h> using namespace std; struct js { int v, zl; double dj; } a[10001]; int k, w, s, i, j, yw; double zj; bool cmp(js x, js y) { return x.dj > y.dj; } int main() { cin >> k; while (k > 0) { memset(a, 0, sizeof(a)); cin >> w >> s; for (int i = 1; i <= s; i++) { cin >> a[i].zl >> a[i].v; a[i].dj = (a[i].v * 1.0) / a[i].zl; } sort(a + 1, a + 1 + s, cmp); yw = 0; zj = 0.0; int n = 1; while (yw < w && n <= s) { if (yw + a[n].zl <= w) { yw += a[n].zl; zj += a[n].v; } else { zj += a[n].dj*(w - yw); yw = w; } n++; } cout << fixed << setprecision(2) << zj << endl; k--; } return 0; }
🎉️ 完结撒花🎉️
- 1
信息
- ID
- 215
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 13
- 已通过
- 5
- 上传者