ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#196350 | #2438. 覆盖 | tkswls | 100 | 286ms | 5160kb | C++11 | 1.2kb | 2023-10-22 11:13:01 | 2023-10-22 12:07:17 |
answer
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t, n, m, r, k, a[100005], h[100005], l[100005];
long double ans;
long long cnt;
bool cmp(int p, int q) {
return p > q;
}
struct node {
int name, num;
bool operator <(const node p)const {
return num < p.num;
}
};
priority_queue<node> q;
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> t;
while (t--) {
cin >> n >> m >> r >> k;
for (int i = 1; i <= n; i++) {
h[i] = min(n - r + 1, i) - (max(1ll, i - r + 1)) + 1;
}
for (int i = 1; i <= m; i++) {
l[i] = min(m - r + 1, i) - max(1ll, i - r + 1) + 1;
}
cnt = 0;
for (int i = 1; i <= n; i++) a[i] = 0;
sort(h + 1, h + n + 1, cmp);
sort(l + 1, l + m + 1, cmp);
while (q.size()) q.pop();
for (int i = 1; i <= n; i++) {
a[i] = 1;
q.push(node{i, h[i]*l[1]});
}
node u;
for (int i = 1; i <= k; i++) {
u = q.top();
cnt += u.num;
a[u.name]++;
if (a[u.name] <= m) {
q.push(node{u.name, h[u.name]*l[a[u.name]]});
}
q.pop();
}
ans = cnt * 1.0 / ((n - r + 1) * (m - r + 1));
cout << fixed << setprecision(10) << ans << "\n";
}
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 10
Accepted
time: 0ms
memory: 1364kb
input:
9 168 16 4 25 248 1 1 5 1 198 1 15 22 60 2 50 244 1 1 178 134 41 36 296 327 388 323 330 323 1 1 151 ...
output:
0.1864801865 0.0201612903 0.0757575758 0.1614205004 0.7295081967 107.6363636364 330.0000000000 0.467...
result:
ok 9 numbers
Test #2:
score: 10
Accepted
time: 0ms
memory: 1396kb
input:
8 452 370 368 6 1 955 1 393 2 614 2 300 22 927 18 48 874 485 485 256 1 121 1 59 1 656 1 256 326 1 1 12
output:
6.0000000000 0.4115183246 0.9787928222 0.9494505495 256.0000000000 0.4876033058 0.3902439024 0.03680...
result:
ok 8 numbers
Test #3:
score: 10
Accepted
time: 3ms
memory: 1400kb
input:
8 570 1 1 63 874 101 100 34423 326 39 17 3209 1 194 1 108 581 3 3 44 325 996 321 568 722 5 2 1942 51...
output:
0.1105263158 4441.6774193548 126.0175315568 0.5567010309 0.2279792746 269.7159763314 2.6934812760 0....
result:
ok 8 numbers
Test #4:
score: 10
Accepted
time: 3ms
memory: 1392kb
input:
8 648 1 1 18 993 1 1 217 1 488 1 193 471 635 166 27730 107 314 105 18300 544 498 69 10432 94 169 72 ...
output:
0.0277777778 0.2185297080 0.3954918033 5313.0849673203 8503.3333333333 242.6556185265 188.8163265306...
result:
ok 8 numbers
Test #5:
score: 10
Accepted
time: 12ms
memory: 1672kb
input:
8 171 461 66 5695 91 457 91 16642 42 5480 28 15510 6956 3 2 3339 4344 40 19 74262 1294 7173 928 2418...
output:
590.9905660377 4126.4904632153 79.6405648267 0.9601725377 238.1764804775 3592.9913544669 2605.086854...
result:
ok 8 numbers
Test #6:
score: 10
Accepted
time: 30ms
memory: 3892kb
input:
10 52 35361 14 27041 1204 64402 24 58942 57312 1 1 9566 30529 1390 258 3753 11 1319 2 8352 2603 3 1 ...
output:
3.8445841059 0.4465326581 0.1669109436 7.2836144989 2.5347496206 0.8333973620 0.0627556597 1727.8554...
result:
ok 10 numbers
Test #7:
score: 10
Accepted
time: 70ms
memory: 5032kb
input:
10 85684 2 1 85182 39803 11514 11510 31751 84665 467 377 49640 10159 15824 10155 20 321 93363 108 28...
output:
0.4970706316 12916.3076977451 222.0251752898 20.0000000000 16.8237647910 545.5336161382 0.2352412414...
result:
ok 10 numbers
Test #8:
score: 10
Accepted
time: 64ms
memory: 4608kb
input:
10 75823 1 1 116 91 83897 89 43663 576 31059 177 7825 68910 4469 4469 29205 20 50937 19 27127 88091 ...
output:
0.0015298788 46.3674187736 19.8450138426 2025.3428664536 10.1222137120 0.3613390140 1856.4729019981 ...
result:
ok 10 numbers
Test #9:
score: 10
Accepted
time: 54ms
memory: 5160kb
input:
9 223 85151 205 14819 59988 51568 1937 83192 26162 43 9 15672 66965 3402 2997 41850 1 61432 1 15098 ...
output:
35.7622399849 108.3332678920 1.3867662963 1960.7067485813 0.2457676781 88.2549284886 0.6273428886 11...
result:
ok 9 numbers
Test #10:
score: 10
Accepted
time: 50ms
memory: 4976kb
input:
10 19 63061 2 12885 76021 125 107 33570 44040 10482 4206 18535 39391 130 128 27837 6653 30811 6651 6...
output:
0.0454064912 47.3159454653 1311.3365824243 90.7481662592 17280.0473076446 368.2864085363 0.018404410...
result:
ok 10 numbers