QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#246113 | #7419. Jiry Matchings | 11d10xy | RE | 211ms | 58388kb | C++14 | 1.9kb | 2023-11-10 16:17:40 | 2023-11-10 16:17:41 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
using i64=long long;
using poly=basic_string<i64>;
using A4=array<poly,4>;
using A2=array<poly,2>;
constexpr i64 finf=-2e18;
poly mul(poly f,poly g){
int fn=f.size(),gn=g.size(),n=fn+gn-1;
f+=finf,g+=finf;
poly r(n,0);r[0]=f[0]+g[0];
for(int i=1,j=0,k=0;i<n;i++)
(f[j+1]-f[j]>g[k+1]-g[k]?j:k)++,r[i]=max(f[j]+g[k],finf);
return r;
}
poly dot(poly f,poly g){
if(f.size()<g.size())swap(f,g);
for(int i=0;i<g.size();i++)f[i]=max(f[i],g[i]);
return f;
}
A4 mul(A4 f,A4 g){
A4 r;
for(int i:{0,1})for(int k:{0,1})
r[i<<1|k]=dot(mul(f[i<<1],g[k]),mul(f[i<<1|1],g[2|k]));
return r;
}
A2 mul(A2 f,A2 g){return{mul(f[0],g[0]),dot(mul(f[0],g[1]),mul(f[1],g[0]))};}//[0]:不和rt match;[1]:match
map<pair<int,int>,int>ew;
basic_string<int>G[200010];
int sz[200010],fa[200010],dfn[200010],len[200010],tot;
void dfs1(int u){
if(fa[u])G[u].erase(find(begin(G[u]),end(G[u]),fa[u]));
sz[u]=1;
for(int&v:G[u]){
fa[v]=u,dfs1(v),sz[u]+=sz[v];
if(sz[v]>sz[G[u][0]])swap(v,G[u][0]);
}
}
void dfs2(int u){dfn[u]=++tot,len[u]=1;for(int v:G[u])dfs2(v),v==G[u][0]&&(len[u]=len[v]+1);}
auto calc=[](auto a,int m){
for(int hf=1;hf<m;hf<<=1)
for(int i=0;i+hf<m;i+=hf*2)
a[i]=mul(a[i],a[i+hf]),a[i+hf]={};
return a[0];
};
A4 awa[200010];
void solve(int u){
vector<A2>ls;
for(int v:G[u]){solve(v);if(v!=G[u][0])ls.push_back({dot(awa[dfn[v]][0],awa[dfn[v]][1]),awa[dfn[v]][2]});}
auto t=ls.empty()?A2{{{0},{finf}}}:calc(ls.data(),ls.size());
awa[dfn[u]][0]=dot(t[0],t[1]),awa[dfn[u]][1]=t[0],
awa[dfn[u]][2]=mul(t[0],{finf,ew[{u,fa[u]}]}),awa[dfn[u]][3]={finf};
if(u==1||u!=G[fa[u]][0])calc(awa+dfn[u],len[u]);
}
int main(){
int n;cin>>n;assert(n<200000);
for(int i=1,u,v,w;i<n;i++)
scanf("%d%d%d",&u,&v,&w),ew[{u,v}]=ew[{v,u}]=w,G[u]+=v,G[v]+=u;
dfs1(1),dfs2(1),solve(1);
for(int i=1;i<n;i++)
if(i>=awa[1][0].size())printf("? ");
else printf("%lld ",awa[1][0][i]);
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 5ms
memory: 35932kb
input:
5 1 2 3 2 3 5 2 4 4 3 5 2
output:
5 6 ? ?
result:
ok single line: '5 6 ? ? '
Test #2:
score: 0
Accepted
time: 5ms
memory: 38088kb
input:
10 2 8 -5 5 10 5 3 4 -5 1 6 5 3 9 5 1 7 -3 4 8 -5 10 8 -5 1 8 -3
output:
5 10 15 10 ? ? ? ? ?
result:
ok single line: '5 10 15 10 ? ? ? ? ? '
Test #3:
score: 0
Accepted
time: 3ms
memory: 35936kb
input:
2 1 2 35
output:
35
result:
ok single line: '35 '
Test #4:
score: 0
Accepted
time: 3ms
memory: 36092kb
input:
100 75 98 770328247 87 98 -219729992 98 35 578758971 98 93 -348642106 63 98 -638036803 83 25 -744163505 21 98 810313834 97 25 131957988 19 98 -711567435 8 25 68874404 43 98 184473508 28 94 171940607 92 28 971759198 51 98 -674532123 28 6 797727320 98 95 1154600 98 58 683765502 28 12 358426364 4 42 65...
output:
990461444 1951945471 2906346403 3825083089 4484694703 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
result:
ok single line: '990461444 1951945471 290634640... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '
Test #5:
score: 0
Accepted
time: 0ms
memory: 38096kb
input:
203 139 160 -585848305 172 95 -541522893 170 39 5557137 106 39 -778170145 3 95 -436330773 39 6 -437501664 16 130 -452155774 65 148 68947909 160 62 959671488 109 39 -800234924 39 69 -419168940 23 16 876930246 95 84 393547919 11 39 640235516 37 95 100755747 39 36 930905421 95 103 150613974 39 60 55894...
output:
980020055 1939691543 2855429156 3756427595 4562844897 4346623326 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?...
result:
ok single line: '980020055 1939691543 285542915... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '
Test #6:
score: 0
Accepted
time: 5ms
memory: 38180kb
input:
406 77 136 -97512557 231 136 542346963 130 177 -388708409 390 136 686852490 342 127 883069794 128 136 477257139 254 136 -475703031 136 32 -928318588 136 295 510781030 102 342 871598741 137 214 648132758 342 3 697615122 136 120 -301371460 406 43 154140155 406 55 921120861 72 371 88488927 183 136 -146...
output:
996418061 1986908701 2975920530 3898989188 4755959611 5559326552 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?...
result:
ok single line: '996418061 1986908701 297592053... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '
Test #7:
score: 0
Accepted
time: 0ms
memory: 38204kb
input:
812 72 362 -368276642 362 196 -634964868 362 743 -833364678 244 362 78813293 111 20 -210495433 455 362 455557250 229 64 -426691307 756 362 139006554 362 143 473229314 20 534 -699191624 158 362 93363463 312 20 -859248217 157 362 180458703 362 731 299520404 20 323 -735699279 20 742 -812381447 439 20 1...
output:
999034642 1995939938 2980594575 3958550949 4917179479 5765897258 6449371168 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...
result:
ok single line: '999034642 1995939938 298059457... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '
Test #8:
score: 0
Accepted
time: 4ms
memory: 38420kb
input:
1625 1142 1405 -551024632 385 1543 919271125 398 981 264110458 385 1176 -413402000 123 385 736435016 252 385 718332198 1294 385 34067686 981 267 -384479151 1552 385 793504414 23 385 -694334331 1197 385 385229583 1016 385 -467572952 536 385 439439632 769 385 358175397 385 858 -647141736 385 178 -3958...
output:
999537220 1998889246 2996051177 3986098023 4948945555 5833220615 6655752159 6915163854 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?...
result:
ok single line: '999537220 1998889246 299605117... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '
Test #9:
score: 0
Accepted
time: 7ms
memory: 36664kb
input:
3250 2887 101 258851508 2017 1662 546412652 1662 629 -28215881 1756 1662 450358858 2981 1692 799511924 3193 1662 363320660 1692 905 -323671345 1692 2935 19706073 2913 3047 -25735169 1149 2887 -805060913 1692 461 824382188 1692 2403 929982454 2509 721 -147417737 1662 770 -721376313 1260 1662 -1568571...
output:
999996265 1997699858 2994629552 3984126644 4965926521 5932717085 6881879351 7821660229 8728166024 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...
result:
ok single line: '999996265 1997699858 299462955... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '
Test #10:
score: 0
Accepted
time: 7ms
memory: 37620kb
input:
7500 4955 6802 -495321867 6802 2205 -674830428 6287 3296 931013751 6802 7002 -972370682 5968 6802 -4844061 6802 4769 239749327 1694 6802 -468455800 6802 976 158103224 6802 5250 381161328 5281 6802 -109984276 4676 2299 563014102 2299 297 -529154962 4317 2436 861997552 3474 2299 938353692 6802 6742 11...
output:
999621933 1999210349 2998150687 3996516968 4992090923 5980299116 6965962239 7791569767 8521331693 9157667141 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?...
result:
ok single line: '999621933 1999210349 299815068... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '
Test #11:
score: 0
Accepted
time: 23ms
memory: 38692kb
input:
12500 12420 8595 -255200982 11605 5490 845231189 8595 5721 390643780 5512 5490 268180812 11132 10795 956887552 7633 8595 -622785013 7562 8595 513664257 9744 8595 -675715598 6080 8595 999680752 11864 8595 -967505600 9961 8595 613622983 1356 12167 808408582 2383 8595 -476729851 6969 11132 -942417500 2...
output:
999858209 1999538961 2999084473 3998464234 4997801190 5996643071 6995458737 7992421815 8922828463 9776715075 9864436704 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...
result:
ok single line: '999858209 1999538961 299908447... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '
Test #12:
score: 0
Accepted
time: 40ms
memory: 43456kb
input:
25000 17077 20165 -507412418 18419 20161 618820479 19707 19850 -175193487 20165 14994 943405292 20165 24206 -167254127 20706 20165 171657772 21119 20165 116133390 4987 20165 42216677 11925 11458 -917266631 3554 20165 -419663469 3565 9374 453456629 17577 20165 -721380063 23667 10268 616472024 11078 2...
output:
999925482 1999836258 2999615985 3999293406 4997527596 5994797398 6990387648 7966039593 8937696974 9843700482 10677729598 11067646897 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?...
result:
ok single line: '999925482 1999836258 299961598... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '
Test #13:
score: 0
Accepted
time: 81ms
memory: 48936kb
input:
50000 18500 2466 792046417 18500 44110 -900904087 21015 11984 -737928618 28173 41859 -519214580 30313 18500 -301917017 42387 41859 -974702020 11984 24167 146595056 18500 21584 903989466 18500 37467 556499768 41859 19205 -9960474 3769 39568 914049493 44621 18500 187544463 18500 15381 -10251112 11984 ...
output:
999937917 1999800424 2999565993 3999252320 4998654018 5997015278 6995342886 7990129710 8964115429 9930869200 10864301226 11747795394 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?...
result:
ok single line: '999937917 1999800424 299956599... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '
Test #14:
score: 0
Accepted
time: 211ms
memory: 58388kb
input:
100000 41120 8939 -908804331 41120 59419 937439044 56449 26963 281860304 56449 40366 164393802 70598 56449 17660671 32292 56449 661439314 89841 56449 850663169 56997 56449 -284803758 12053 13650 -277296534 76004 13650 367404917 13650 64459 -238013272 39862 56449 248682228 54227 19569 -913307595 4112...
output:
999969594 1999928060 2999840635 3999730309 4999609571 5999262156 6998303381 7997324865 8994564135 9989627730 10975230325 11947018149 12805065409 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?...
result:
ok single line: '999969594 1999928060 299984063... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '
Test #15:
score: -100
Runtime Error
input:
200000 67373 91995 -500869886 70900 10837 -54987159 126177 70900 88807696 142953 91374 61508750 141503 70900 169900986 58548 70900 -39790283 9166 148393 -599860314 69224 38404 630361305 79354 91995 763726682 56066 70900 682115260 194973 70900 -683695849 91995 5518 -141603845 182408 70900 -679035513 ...