QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#61353 | #5028. 数据传输 | Minion | 100 ✓ | 848ms | 547008kb | C++23 | 2.6kb | 2022-11-12 14:48:56 | 2022-11-12 14:48:59 |
Judging History
answer
#include<cstdio>
#define fo(i,x,y) for(int i = x;i <= y;++i)
#define fd(i,x,y) for(int i = x;i >= y;--i)
#define _is 1048576 * 10
#define _os 1048576 * 10
#define gc() ib[++bi]
#define pc(ch) ob[++bo] = ch
#define ll long long
#define inf 4000000000000000000ll
using namespace std;
char ib[_is],ob[_os];int bi = -1,bo = -1;
int rd()
{
int x = 0;char ch = gc();
while(ch < 48 || ch > 57) ch = gc();
while(ch >= 48 && ch <= 57) x = x * 10 + ch - 48,ch = gc();
return x;
}
void pr(ll x)
{
char ch[20];int w = -1;
if(x == 0) ch[++w] = 48;
while(x) ch[++w] = x % 10 + 48,x /= 10;
fd(i,w,0) pc(ch[i]);pc('\n');
}
int n,q,m,e[400010][2],lst[200010],tot,x,y,v[200010],f[200010][18],d[200010],Fa[200010],s[200010];
void add(int x,int y) {e[++tot][0] = y,e[tot][1] = lst[x],lst[x] = tot;}
void Mi(ll &x,ll y) {if(y < x) x = y;}
void Mi(int &x,int y) {if(y < x) x = y;}
struct mat{ll a[3][3];}F[200010][18],G[200010][18],C;
struct vec{ll a[3];}c,ans;
int id[20][2];
mat operator * (mat &A,mat &B)
{
fo(i,0,m) fo(j,0,m) C.a[i][j] = inf;
fo(i,0,m) fo(k,0,m)
{
if(A.a[i][k] == inf) continue;
fo(j,0,m) Mi(C.a[i][j],A.a[i][k] + B.a[k][j]);
}
return C;
}
vec operator * (mat &A,vec &B)
{
fo(i,0,m) c.a[i] = inf;
fo(i,0,m) fo(k,0,m) Mi(c.a[i],A.a[i][k] + B.a[k]);
return c;
}
void dg(int x,int fa)
{
Fa[x] = f[x][0] = fa,d[x] = d[fa] + 1;
fo(i,1,17) f[x][i] = f[f[x][i - 1]][i - 1];
if(m == 0) F[x][0].a[0][0] = v[x];
else if(m == 1) F[x][0].a[0][0] = F[x][0].a[0][1] = v[x],F[x][0].a[1][0] = 0,F[x][0].a[1][1] = inf;
else
{
fo(i,1,2) fo(j,0,2) F[x][0].a[i][j] = inf;
fo(i,0,2) F[x][0].a[0][i] = v[x];
F[x][0].a[1][0] = F[x][0].a[2][1] = 0,F[x][0].a[1][1] = s[x];
}
G[x][0] = F[x][0];
fo(i,1,17) F[x][i] = F[f[x][i - 1]][i - 1] * F[x][i - 1],G[x][i] = G[x][i - 1] * G[f[x][i - 1]][i - 1];
for(int i = lst[x];i;i = e[i][1]) if(e[i][0] ^ fa) dg(e[i][0],x);
}
int main()
{
fread(ib,1,_is,stdin);
n = rd(),q = rd(),m = rd() - 1;
fo(i,1,n) v[i] = rd(),s[i] = 1000000000;
fo(i,1,n - 1) x = rd(),y = rd(),add(x,y),add(y,x),Mi(s[x],v[y]),Mi(s[y],v[x]);
dg(1,0);
while(q--)
{
x = rd(),y = rd();
if(d[x] < d[y]) x ^= y ^= x ^= y;
fo(i,0,m - 1) ans.a[i] = inf;ans.a[m] = 0;
fd(i,17,0) if(d[f[x][i]] >= d[y]) ans = F[x][i] * ans,x = f[x][i];
if(x == y) ans = F[x][0] * ans;
else
{
int tp = 0;
fd(i,17,0) if(f[x][i] && f[y][i] && f[x][i] != f[y][i]) ans = F[x][i] * ans,id[++tp][0] = y,id[tp][1] = i,x = f[x][i],y = f[y][i];
ans = F[x][1] * ans,ans = G[y][0] * ans;
fd(i,tp,1) ans = G[id[i][0]][id[i][1]] * ans;
}
pr(ans.a[0]);
}
fwrite(ob,1,bo + 1,stdout);
return 0;
}
这程序好像有点Bug,我给组数据试试?
详细
Test #1:
score: 4
Accepted
time: 2ms
memory: 11500kb
input:
10 10 2 57043127 114640239 300424980 586888163 188477607 911965278 472340743 394877244 529138013 894751964 2 1 3 1 4 1 5 1 6 3 7 4 8 3 9 2 10 8 9 1 1 6 3 7 1 4 2 8 7 2 4 7 9 10 4 8 6 4
output:
586181140 969008405 829808850 643931290 566560610 644024109 1059228906 1781358084 1038808534 1555896568
result:
ok 10 numbers
Test #2:
score: 4
Accepted
time: 1ms
memory: 11588kb
input:
10 10 3 515461247 122469426 373419357 240246417 683468566 136602763 70320484 55231411 400641186 452855354 2 1 3 2 4 1 5 3 6 5 7 3 8 5 9 4 10 2 3 6 3 7 10 1 2 1 6 1 5 6 5 3 2 3 7 2 1 10
output:
510022120 443739841 968316601 637930673 722384494 820071329 1056887923 495888783 192789910 968316601
result:
ok 10 numbers
Test #3:
score: 4
Accepted
time: 0ms
memory: 13872kb
input:
200 200 2 223968218 279546838 804128057 76136095 361002367 152766393 224622942 450584850 230701855 154660621 306829806 190625325 722152088 986210137 462998048 708950403 714449081 971865798 732215644 183140358 409740805 89676634 307902534 200108055 883429723 74444782 116503412 674858377 848164089 303...
output:
3329480845 2414638020 1193057378 2216673220 2742703313 1292216576 882438338 2816443547 2084332685 1624544084 2597390379 2314199284 1749504275 2456963075 1035160187 1082642373 2309071590 2493574805 3402474073 2043882686 1946208623 3751030442 1571784796 1230120965 1644388428 3180354474 1327722947 1913...
result:
ok 200 numbers
Test #4:
score: 4
Accepted
time: 1ms
memory: 13856kb
input:
200 200 3 176782478 155141627 297494671 180537349 532916478 961539569 78976947 158315435 670899511 760142378 291469994 266683441 774833510 18029808 339001059 788354476 783659847 114670822 60879075 302690373 224735989 446295810 807838939 407453575 173495758 397878799 853331083 599045920 762541602 992...
output:
1377206757 1922166474 640125903 2290639615 1480851826 1373473619 2093726382 1464221120 1823876497 1226360389 1574207116 2292622155 2150734081 1671926728 1335942921 1978691768 923980449 1144281834 910526154 1343091969 2236266681 856430520 400677655 1009859201 1507139391 1667701713 1090623465 16573598...
result:
ok 200 numbers
Test #5:
score: 4
Accepted
time: 1ms
memory: 13876kb
input:
200 200 3 127953188 850857284 995440016 953226857 628645514 639353037 819001961 628506232 240703490 805394937 937931790 820002974 844414450 202013773 480163530 850684519 695435434 714475561 541843670 120800798 723981875 766637061 403596753 489340938 375706669 724985334 845735198 196683646 791294118 ...
output:
2662412204 944841885 1378094853 1794833827 1384225923 815382576 1186648724 2234525280 1694174573 2036719725 2767949927 778023090 966966138 1649049461 1429677917 2006852328 1321903063 1195491513 2330814875 1960006171 2213491346 2016932797 1466124840 2009948979 1598266636 1143681619 1913569225 1264454...
result:
ok 200 numbers
Test #6:
score: 4
Accepted
time: 5ms
memory: 16296kb
input:
2000 2000 1 791398027 457328826 524997827 926923746 703062867 609666517 296105790 636884928 150780008 698672787 574977042 922767612 421607428 921198637 242696650 206132657 259266820 945184303 435927427 832676853 839279467 391036132 196282242 52905720 210130604 651855061 741538232 520393834 363636092...
output:
42041464771 18889087191 66782845178 40072064443 16342766711 66514794934 50695097840 37791383513 28773129797 67890765593 60057682947 20662583641 3463439634 64374551096 46019217960 50011860957 34608996981 29948988473 51711007267 41567830874 27742433289 38593932973 55765711657 62110756848 62970279549 6...
result:
ok 2000 numbers
Test #7:
score: 4
Accepted
time: 1ms
memory: 21124kb
input:
2000 2000 1 283202861 353285715 170004396 987475661 846798199 149140675 1047852 893406938 478011704 780865995 822684137 128745020 788786376 330027584 696897962 87188988 448887723 446272288 155010924 344647082 144685703 720369214 453929934 371880509 94548716 634595924 139369282 617399223 495885233 81...
output:
28997560269 54703180939 39650660223 37573940081 68234824942 41735312012 34530505831 42778610565 33194260495 22862088206 58434556028 13453698126 69809390028 69730291843 9854287008 19387758863 42110221455 17420179059 50509788937 32278466545 46422433228 68899338477 66907555471 38996582180 71989460014 4...
result:
ok 2000 numbers
Test #8:
score: 4
Accepted
time: 0ms
memory: 16364kb
input:
2000 2000 2 477962049 357310609 49569644 762045946 513093177 172502924 840480472 384236457 466978413 919102330 531808949 240644517 109880813 172960581 805708544 605568484 938572271 761485109 613318012 930553171 985612814 878463377 344235213 455992449 684751345 588339162 145676555 700797512 492788888...
output:
29983557999 29011152654 19594941855 18247650187 21759124309 9368180294 28726378032 23271352215 5196824677 21566640940 19311483235 27424697627 15301799566 17470508198 8339206684 24049039729 16784047317 15601388489 19384219177 8922482301 25572492957 21424295425 28980901973 20263222662 26976450546 8856...
result:
ok 2000 numbers
Test #9:
score: 4
Accepted
time: 4ms
memory: 18584kb
input:
2000 2000 2 849171432 610016805 13460859 85361280 726104123 242459901 132745157 443488393 89209767 558402173 21245766 484956514 683999853 276799688 836712764 530500100 593549395 400602997 317296953 188881273 626767696 552722928 832417407 338341579 941783375 795875379 207031476 8834470 752285013 3449...
output:
16303931454 23602415227 18685101430 17995592360 20730227965 33085738616 26248582296 8681272695 13878760245 16882386489 16780403099 21343890617 18189596883 15001665432 32009321287 23428440698 26924780252 23231389167 18572957235 29650539297 19190166017 13061590668 12151168181 24259384838 24410449643 2...
result:
ok 2000 numbers
Test #10:
score: 4
Accepted
time: 3ms
memory: 17848kb
input:
2000 2000 3 674720623 934797442 155500363 66459381 19632645 493098328 552611900 948869229 303034530 274396006 316128880 41917083 631067049 639189155 964066658 866287434 776109179 658808759 722888744 456156958 160619317 62943355 265517427 543777129 153729772 657027477 205880251 212942740 328365478 15...
output:
14206756439 15245372721 7374715422 11900986368 3974138657 10915485820 13566582202 10061420797 13399158028 9871563628 8100471975 9690288264 14910603824 4093072483 8434914852 5001033150 13541449363 9738041427 16254497397 6977329260 3033800158 3053160378 8728716366 10641938394 14515452874 9733430704 98...
result:
ok 2000 numbers
Test #11:
score: 4
Accepted
time: 4ms
memory: 18048kb
input:
2000 2000 3 7751220 424592706 436527153 938291539 533734131 4187423 93817061 218417998 951932250 192375824 177111688 759553000 283107015 144759912 38317095 904618991 403411806 997000874 374491318 452803484 356143250 301231041 35859528 180155794 471706454 736410170 983253985 712896149 479081406 74729...
output:
15147970147 3509241383 7418102216 9163117110 11725431926 3521804999 8161259393 9476527761 5773699959 12284881113 3474796985 7208145510 12578300593 12436611214 10315241518 9857951326 12824624252 15137043139 15012851659 12560170675 12187730571 12473915339 13136158657 10467874171 9673679802 10278121303...
result:
ok 2000 numbers
Test #12:
score: 4
Accepted
time: 554ms
memory: 547008kb
input:
200000 200000 1 695456877 892658391 763944388 743150795 452335096 61168835 3866364 278513674 50556704 968611038 376908838 833509255 621674731 679021879 182628321 830344024 235614520 320757868 766981416 596244132 840289331 260772962 843012586 507304370 328969643 268794794 49491706 99465589 228164110 ...
output:
3081267356875 301146127644 3400057849565 4392908465725 3219514648425 3681051597010 1027253261632 2907631647627 3627594289975 3765393672075 1296800462415 4627247729200 6289669466069 5022320436879 3672859006415 6231215734188 4377401901853 1842693674837 5027897457569 2243303919653 6277164799201 3955890...
result:
ok 200000 numbers
Test #13:
score: 4
Accepted
time: 463ms
memory: 546664kb
input:
200000 200000 1 417036424 488546437 447012361 994169462 941417538 898626749 894816945 259185353 205896643 937002846 557778931 383027592 148610964 419701033 206180971 868582959 214328409 19928827 440457168 202644665 642218329 195601783 348415590 948556019 387287561 564889979 302340906 319482628 73287...
output:
4341718346571 3556980938316 6223384148888 2395774929202 2353331543 4111041357760 4590131901806 5661202274580 3555935072810 806870748354 3096826030415 6114167140064 3691573683780 2464531864935 2613988827593 2632961767541 6228592593358 6221440171207 3689149039169 2875330562592 4715658207330 2785462379...
result:
ok 200000 numbers
Test #14:
score: 4
Accepted
time: 88ms
memory: 149436kb
input:
50000 50000 2 498297379 491548861 864758767 944478100 832335145 385407541 954133358 381556126 974207696 438293459 850388870 473166758 117638824 720969237 541172963 618998533 263243840 231074016 502369825 532383791 752713307 225204691 713073429 447770655 843223078 495340828 962620576 971188476 607937...
output:
4124707077 4607451920 3060767458 5882066184 5086614406 4227677600 6783993714 6478502999 4553001306 4991136006 4193305835 5184044866 4942766201 3291030471 5948257497 5282933743 4774506671 2832464456 6730525912 6987248810 7512128345 4164308406 4295999237 7155935163 3039864940 5707325094 3661903028 568...
result:
ok 50000 numbers
Test #15:
score: 4
Accepted
time: 187ms
memory: 281176kb
input:
100000 100000 2 63673641 67030038 324410766 343547741 539565125 724489486 430117091 782244102 952316098 547129150 372665860 432380922 898876294 628046882 700257136 792389438 813750842 185112769 125837189 80145639 157421726 454720210 121808583 446353921 481374134 121038090 54858450 466384528 47515189...
output:
6756964444 5815943980 4208539988 4274784744 2581753497 5010548910 2707169638 6708959142 6881779430 4204443669 4254832363 4056652261 3962616814 3695245398 5780877168 3115180230 5917232577 4394038359 6233744473 4657092069 5962650028 5144171885 5969360500 2564468455 3034515052 4914209273 2868692013 541...
result:
ok 100000 numbers
Test #16:
score: 4
Accepted
time: 192ms
memory: 281684kb
input:
100000 100000 2 283302923 244571699 345481811 837440846 864287069 453622266 770313783 190364218 473758234 9681 530528006 247823302 457955758 605323783 50352607 142180942 96021506 712846431 733694414 499142034 758937658 828610196 259268249 874183515 456131891 646937962 775359856 196167414 690126584 3...
output:
6829693200 5790766343 6432132361 5229158518 6817234756 4674928479 7757647365 3680238391 5157113105 5054316797 2999033276 4088923259 4263494144 4208542200 2657481514 3690022244 5218899574 4443432731 4611807605 3585316109 4984042519 5768612433 3343430598 5061528144 4229328878 5170896201 3762140876 649...
result:
ok 100000 numbers
Test #17:
score: 4
Accepted
time: 589ms
memory: 543412kb
input:
200000 200000 2 200236719 618601718 386564718 274404635 934739744 12629773 117393307 828845968 994191893 838162678 790805418 436568112 108906836 513987363 999783271 696462064 442410411 625986171 882821213 217995663 899960102 968016526 175418193 269842139 143315593 865292084 648285990 988251819 30487...
output:
2240829334500 1241242999028 1795657991239 2241426471053 795533842988 579473111857 2603045312573 963771597559 1306380975780 2571414842363 1759921911120 1464440212391 1519557975683 384806256126 1297067329314 1545956124345 1360630204549 1066232477364 750761999572 821978793397 1938849009788 164398840178...
result:
ok 200000 numbers
Test #18:
score: 4
Accepted
time: 581ms
memory: 546328kb
input:
200000 200000 2 776858017 42767830 473557297 471451227 961827466 200289406 519534320 189375279 162905067 929179624 668704457 611622739 360996755 565197680 936250674 108191 890388015 771689258 883189935 837823859 107317119 862568728 989027318 242379534 732319732 487807420 191383956 921382397 69222509...
output:
2045095402240 2100792924110 1447441827853 2311415492969 2170214122551 2028942626644 2036898608019 1066854043038 1951945290029 2575223880911 2594933475216 2117021591654 1942271580659 2616783696841 568939273614 747744193438 1980264152754 1159478317473 1733652555693 2042410348722 1828253303275 99458176...
result:
ok 200000 numbers
Test #19:
score: 4
Accepted
time: 593ms
memory: 543204kb
input:
200000 200000 2 252704213 371497871 264302367 711916367 161191627 335243684 269994157 735149218 705062269 371067374 678135026 410366486 582584451 834760627 72803941 297628496 24126047 373655420 306571749 42033762 785211920 696274888 168344196 317288161 361242479 870443212 95402672 492776370 31941477...
output:
1970040987523 841035849488 2172145851824 1774176457988 796723068512 856188652830 1728928980826 2229391706254 1344638410644 1485125660169 1969265970299 1119685323397 472880801143 2535658215240 1491729020544 2277390435206 179805237369 809860838914 1401285582238 2612007463735 1003314563673 246324274962...
result:
ok 200000 numbers
Test #20:
score: 4
Accepted
time: 110ms
memory: 151260kb
input:
50000 50000 3 653075247 723689266 146086504 444881300 384510129 697744570 447594197 639684229 109666614 783650209 866231264 404872369 691284754 763383965 597951098 545697312 284950787 991415980 361344591 658242979 746347271 978921156 151320227 826024891 378448148 18992710 648719611 446644526 3468439...
output:
2188937297 1699901169 2743945599 2319561577 2594770821 1752336036 2970316096 1741817648 1438641100 2314285637 2314755779 2022612404 3960278851 2108514620 772707285 3308104272 790712446 1169957654 2703312230 2310749701 2254980037 4867771003 2305099482 1897057144 2797251714 1707002300 3155298754 29227...
result:
ok 50000 numbers
Test #21:
score: 4
Accepted
time: 222ms
memory: 284496kb
input:
100000 100000 3 113359868 791441816 207316844 693352644 225888969 256104424 346030925 434438127 442343660 659758696 684851434 626582881 272974443 741756660 317397903 514746385 197546424 191744001 391704115 739607663 675911498 926788934 869731803 632764294 488151203 203046412 25175738 675019674 38497...
output:
1743966341 2043727146 2969563007 2306936392 2706123552 2155440232 2394787737 1628596844 2722141521 2472455779 1690554769 2611121033 2735130808 1477025692 2147015580 2503159678 2100520255 3332517016 2853800049 497288426 2023690174 2069182734 2384659499 2516943315 2685657201 2709939999 2175829250 2401...
result:
ok 100000 numbers
Test #22:
score: 4
Accepted
time: 221ms
memory: 284412kb
input:
100000 100000 3 944093571 632736881 63816942 692619760 48260549 182990463 721635018 671204726 136184850 668667040 5654618 611704253 888364943 396361734 437815652 334006230 714212340 142601163 734990669 242860377 243719025 858108041 644313793 633380622 852649401 209412730 119887323 162008449 10150668...
output:
2393833073 1954227414 2401012360 3373510710 1603098144 2174709268 2686021885 3167480371 2685021797 3631316709 2381648640 2027701519 2809737535 1138021707 2411123484 2467386245 1187968632 2299340175 2403263835 3499316261 3261310005 1894001187 2998068124 2703003089 1076681480 1158105152 3201768159 206...
result:
ok 100000 numbers
Test #23:
score: 4
Accepted
time: 848ms
memory: 544140kb
input:
200000 200000 3 977396722 819404382 384101214 84175008 87296565 518543151 459065290 400515430 158601838 762243 945621850 689016819 448773703 285292534 424999345 84025915 988918480 251902337 763130547 458598520 646617548 290908930 561544488 202785262 359292639 170319249 428845948 55707661 248032433 2...
output:
968997576132 596075483125 1127852525208 465888729409 507055306071 1327864548399 573921626222 37730513057 1415665034055 1432019957335 513060978572 744304775548 1288967786006 960279049001 723024479634 953142993716 992172975082 1366100672558 805526880719 1394549483077 1155187655962 999791917 4095494030...
result:
ok 200000 numbers
Test #24:
score: 4
Accepted
time: 793ms
memory: 544208kb
input:
200000 200000 3 146496392 295645914 329918580 327864532 775595463 679497714 477982990 895715913 426496624 212610959 51398279 890081534 754411393 33800295 757392475 360570928 160302616 769452732 287974602 319522201 208727740 564166879 358497708 986785342 513591623 746990381 12058286 145741662 5027520...
output:
555861804168 764039451668 233611728979 1299840138606 752153977279 1430669153618 1436302944169 858623358525 1361746584744 1386496187178 455558252741 119190774050 1154006581369 1422336101240 745901706334 249823526126 335786420419 1406355539836 1137178429625 1117075433780 449810455574 729446736543 1326...
result:
ok 200000 numbers
Test #25:
score: 4
Accepted
time: 779ms
memory: 543740kb
input:
200000 200000 3 146148313 925361430 681256648 139475934 525916287 330581707 664647885 140817222 690599536 378955690 804445631 23820914 62428704 280096003 359675235 278318215 724837064 96832307 807692306 197177297 705413220 403828326 478016024 141548081 288410830 643346309 553739733 528466670 4019249...
output:
302510379124 1117723346223 1044753754414 469767526593 981841551237 1053251140029 1026507835010 1381448707759 1012898034832 1439403045975 1426847377126 548334569949 1097548506790 1404494463518 634417499207 580778591404 523334833693 944145653438 824798454375 1181937150670 223290353873 1008331281447 90...
result:
ok 200000 numbers
Extra Test:
score: 0
Extra Test Passed