QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#808145 | #8313. Nim Cheater | hhoppitree | AC ✓ | 296ms | 7652kb | C++14 | 1.3kb | 2024-12-10 17:24:01 | 2024-12-10 17:24:03 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const int N = 40005;
int a[N], b[N], res[N], id[N];
vector<int> G[N];
int siz[N], son[N], f[20][1 << 14], g[1 << 14];
void upd(int *F, int A, int B) {
memcpy(g, F, sizeof(g));
for (int i = 0; i < 1 << 14; ++i) F[i] = min(F[i] + B, g[i ^ A]);
}
void dfs1(int x) {
siz[x] = 1;
for (auto v : G[x]) dfs1(v), siz[x] += siz[v], ((!son[x] || siz[v] > siz[son[x]]) && (son[x] = v));
}
void dfs2(int x, int y = 0) {
res[x] = f[y][0];
for (auto v : G[x]) {
if (v != son[x]) memcpy(f[y + 1], f[y], sizeof(f[y + 1])), upd(f[y + 1], a[v], b[v]), dfs2(v, y + 1);
}
if (son[x]) {
upd(f[y], a[son[x]], b[son[x]]), dfs2(son[x], y);
}
}
signed main() {
int n, tot = 0; scanf("%d", &n);
stack<int> stk;
for (int i = 1; i <= n; ++i) {
string S; cin >> S;
if (S == "ADD") {
int t = (stk.empty() ? 0 : stk.top());
G[t].push_back(++tot), stk.push(tot);
scanf("%d%d", &a[tot], &b[tot]);
} else {
stk.pop();
}
id[i] = (stk.empty() ? 0 : stk.top());
}
dfs1(0), memset(f[0], 0x3f, sizeof(f[0])), f[0][0] = 0, dfs2(0);
for (int i = 1; i <= n; ++i) printf("%d\n", res[id[i]]);
return 0;
}
这程序好像有点Bug,我给组数据试试?
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 4964kb
input:
7 ADD 3 10 ADD 2 4 ADD 1 5 ADD 2 1 DEL DEL ADD 3 5
output:
10 14 0 1 0 14 4
result:
ok 7 lines
Test #2:
score: 0
Accepted
time: 15ms
memory: 6232kb
input:
1964 ADD 3004 35344 ADD 6315 69182 ADD 59 78550 ADD 13842 11063 ADD 6255 35962 DEL ADD 13953 33214 ADD 5693 55297 ADD 1056 32685 ADD 13524 45844 ADD 5495 63087 ADD 2963 5957 ADD 7390 51487 ADD 9194 77728 DEL ADD 1958 85909 DEL ADD 6060 26702 ADD 13745 1556 ADD 6128 21684 ADD 9177 98957 ADD 670 35242...
output:
35344 104526 183076 194139 230101 194139 227353 282650 315335 361179 424266 430223 481710 559438 481710 567619 481710 508412 162159 116769 187943 223185 242421 197906 242421 223185 187943 229832 187943 116769 120079 116769 210895 285394 318251 289823 262181 181352 158554 173334 194467 164418 80520 1...
result:
ok 1964 lines
Test #3:
score: 0
Accepted
time: 55ms
memory: 5444kb
input:
7986 ADD 10406 26679 ADD 1401 27753 ADD 3444 55478 ADD 6593 46697 ADD 9685 65960 DEL ADD 3648 11140 ADD 16095 24779 ADD 13199 77124 ADD 7845 42450 ADD 1443 27223 ADD 1147 39482 ADD 1320 25463 ADD 3109 1151 ADD 4171 63655 ADD 10331 20910 ADD 15317 63454 DEL ADD 15015 24513 ADD 10375 61674 DEL ADD 154...
output:
26679 54432 109910 156607 222567 156607 167747 192526 269650 312100 339323 378805 404268 405419 469074 201286 221814 201286 215335 164148 215335 267670 257274 148187 257274 267670 215335 234875 208773 142219 165828 164356 154574 154951 135963 108003 130246 108003 123985 114500 155980 93201 123616 12...
result:
ok 7986 lines
Test #4:
score: 0
Accepted
time: 296ms
memory: 6476kb
input:
39990 ADD 901 53966 ADD 6801 83248 ADD 10537 9950 ADD 4921 30343 DEL DEL DEL ADD 10718 82644 ADD 15697 75103 ADD 11322 54295 DEL DEL DEL ADD 2233 72418 ADD 10998 41706 ADD 5737 78664 ADD 16315 46965 DEL DEL ADD 2384 37544 ADD 15091 57756 ADD 7778 94748 DEL ADD 8859 11993 DEL DEL ADD 14804 66995 DEL ...
output:
53966 137214 147164 177507 147164 137214 53966 136610 211713 266008 211713 136610 53966 126384 168090 246754 293719 246754 168090 205634 263390 358138 263390 275383 263390 205634 272629 205634 168090 196095 196843 196095 280408 361710 385439 446884 480125 567459 480125 446884 496616 539871 496616 53...
result:
ok 39990 lines
Test #5:
score: 0
Accepted
time: 292ms
memory: 7592kb
input:
40000 ADD 10576 91165 ADD 280 27659 ADD 16277 58624 DEL DEL ADD 10612 21196 ADD 8276 25617 ADD 6839 51946 ADD 1074 24294 DEL DEL ADD 3349 23238 ADD 15144 14483 ADD 6206 79807 ADD 3547 87060 ADD 1087 97537 ADD 10122 60220 ADD 10091 61757 ADD 12920 66201 ADD 4096 73520 ADD 7923 31010 ADD 10470 36374 A...
output:
91165 118824 177448 118824 91165 112361 137978 189924 214218 189924 137978 161216 175699 255506 342566 440103 500323 562080 628281 701801 732811 349599 237033 181301 222463 126421 161218 167338 213886 167338 191789 167338 190911 168525 166940 171519 167339 171519 138349 66779 121547 125082 107235 12...
result:
ok 40000 lines
Test #6:
score: 0
Accepted
time: 282ms
memory: 7412kb
input:
40000 ADD 16016 67003 ADD 949 48982 ADD 5774 23423 ADD 2088 79159 ADD 7311 11147 ADD 16156 39724 ADD 12066 41131 ADD 10620 3205 ADD 1281 54740 ADD 16171 64821 ADD 11967 71149 ADD 7965 35031 ADD 12260 34240 ADD 4447 86355 ADD 951 31740 ADD 16068 71786 ADD 6666 39872 ADD 4459 71463 ADD 9739 41904 ADD ...
output:
67003 115985 139408 218567 229714 269438 310569 313774 368514 433335 504484 270078 304318 390673 302368 374154 238684 310147 258689 259943 232059 233390 267158 196962 254789 189023 132045 140520 73149 133065 154075 171949 145270 151883 152603 160200 68753 115487 111385 85840 82635 84013 137862 14201...
result:
ok 40000 lines
Test #7:
score: 0
Accepted
time: 292ms
memory: 7200kb
input:
40000 ADD 1295 47396 ADD 2120 26317 ADD 15019 15566 ADD 4355 41289 ADD 15834 98882 ADD 14657 40107 ADD 13371 47309 ADD 6372 76939 ADD 11470 23171 ADD 1741 23083 ADD 586 19488 ADD 1745 40203 ADD 11305 58113 ADD 15534 27946 ADD 2959 70055 DEL ADD 16181 87262 DEL DEL ADD 4042 83554 ADD 4259 5739 DEL AD...
output:
47396 73713 89279 130568 229450 269557 316866 393805 416976 440059 459547 301070 359183 387129 256597 387129 474391 387129 359183 442737 445477 442737 395103 442737 359183 301070 317585 261504 154063 261504 329796 261504 317585 338692 422667 338692 171997 338692 317585 301070 459547 483827 511126 53...
result:
ok 40000 lines
Test #8:
score: 0
Accepted
time: 279ms
memory: 7384kb
input:
39762 ADD 13818 65130 ADD 1379 85844 ADD 2796 2815 ADD 7680 68816 ADD 15019 33812 ADD 15094 76389 ADD 1462 30525 ADD 5290 80168 ADD 14058 19474 ADD 13484 57565 ADD 7834 11102 ADD 10811 93117 ADD 11034 12750 ADD 13325 75917 ADD 10659 64617 ADD 8569 4995 ADD 610 80677 ADD 12876 71079 ADD 13738 20381 A...
output:
65130 150974 153789 222605 256417 332806 363331 443499 462973 520538 531640 624757 637507 713424 309133 272691 299291 189926 114691 137360 179916 151792 147822 119323 127723 147372 66271 98696 129061 118116 132520 169393 122844 108506 122876 124153 130333 126830 131611 107791 52404 141664 84472 1174...
result:
ok 39762 lines
Test #9:
score: 0
Accepted
time: 276ms
memory: 6196kb
input:
39762 ADD 1434 21792 ADD 2992 50422 ADD 1501 43225 ADD 11344 42700 ADD 13000 1470 ADD 1562 24093 ADD 1731 87146 ADD 5703 26703 ADD 372 2748 ADD 400 15910 ADD 14227 21799 ADD 11413 51639 ADD 10046 5560 ADD 15433 98132 ADD 7034 17717 ADD 5174 70397 ADD 9522 536 ADD 1748 81984 ADD 15358 26358 ADD 11271...
output:
21792 72214 115439 158139 159609 183702 270848 297551 300299 316209 338008 389647 395207 64543 82260 152657 153193 182495 183996 140830 93856 105308 109361 81061 111309 147479 118538 113194 74806 110855 116038 90654 91395 108147 92728 72125 61906 16411 100254 49895 76158 65170 93860 73975 80510 6921...
result:
ok 39762 lines
Test #10:
score: 0
Accepted
time: 272ms
memory: 6208kb
input:
39762 ADD 14908 84084 ADD 10216 81164 ADD 1442 50476 ADD 8175 66420 ADD 13459 10436 ADD 8060 8160 ADD 11189 72050 ADD 5887 35233 ADD 1848 86748 ADD 12309 30893 ADD 2170 47108 ADD 1616 24634 ADD 4734 50519 ADD 12101 97103 ADD 6618 21515 ADD 2407 2013 ADD 14044 14548 ADD 11646 52880 ADD 1804 28613 ADD...
output:
84084 165248 215724 282144 292580 300740 372790 408023 494771 525664 124557 149191 199710 296813 244874 246887 209539 262419 170421 139105 219346 207165 159615 144666 112779 161954 109456 167754 115620 115202 110304 125015 163792 50519 115976 38239 53760 86981 111831 105337 75814 116989 94067 104143...
result:
ok 39762 lines
Test #11:
score: 0
Accepted
time: 288ms
memory: 6804kb
input:
40000 ADD 780 6984 ADD 14 13179 ADD 7414 40296 ADD 3176 42031 ADD 78 73285 ADD 11048 86359 DEL DEL ADD 7254 8570 ADD 5739 57007 ADD 3765 32598 ADD 983 77781 ADD 12967 61925 ADD 7103 13584 ADD 10330 79200 ADD 308 5965 ADD 904 10533 ADD 9515 26509 ADD 15007 9589 ADD 14904 6624 ADD 6440 15504 ADD 9684 ...
output:
6984 20163 60459 102490 175775 262134 175775 102490 111060 168067 200665 278446 340371 353955 433155 439120 449653 476162 192302 198926 106267 131333 129626 130319 129626 78756 96502 110263 121514 71001 92019 117163 67655 105127 103235 69737 84632 53757 71338 85667 105015 97039 104333 65551 93909 96...
result:
ok 40000 lines
Test #12:
score: 0
Accepted
time: 288ms
memory: 7652kb
input:
40000 ADD 12671 68098 ADD 9836 50853 ADD 14048 90166 ADD 7069 78116 ADD 406 83772 ADD 7882 80681 ADD 2957 43948 ADD 14841 42824 ADD 7835 81444 ADD 105 94879 ADD 6121 88286 ADD 1622 95182 ADD 14792 86116 ADD 9977 59369 ADD 516 37739 ADD 13088 69871 ADD 15418 22950 ADD 2353 39935 ADD 14678 4484 ADD 13...
output:
68098 118951 209117 287233 371005 451686 495634 538458 619902 714781 803067 898249 984365 386191 253676 323547 346497 386432 358000 251449 309961 339869 234348 162986 199894 194500 235928 165607 214709 119761 162625 176448 158083 170118 180077 169835 140178 154706 85189 96254 110553 117829 126871 11...
result:
ok 40000 lines
Test #13:
score: 0
Accepted
time: 294ms
memory: 6688kb
input:
40000 ADD 14630 26815 ADD 4993 49239 ADD 14201 89334 ADD 4203 36801 ADD 1499 69385 ADD 2958 86679 ADD 13624 40750 ADD 3120 99926 ADD 3148 40029 ADD 5292 33350 ADD 14914 62117 ADD 11251 57918 ADD 7110 10041 ADD 15957 44809 ADD 9352 57250 DEL DEL ADD 3836 6102 ADD 758 45722 ADD 8956 20172 ADD 12166 93...
output:
26815 76054 165388 202189 271574 358253 399003 498929 538958 572308 634425 692343 243411 288220 158719 288220 243411 249513 196017 216189 182338 198562 191232 183501 174741 183501 191232 246968 128695 246968 191232 181493 242911 135651 242911 181493 266825 224549 187877 196379 155416 195282 185999 1...
result:
ok 40000 lines
Extra Test:
score: 0
Extra Test Passed