QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#79913 | #5402. 术树数 | MoQz | 20 | 1388ms | 11752kb | C++ | 2.2kb | 2023-02-21 11:10:43 | 2023-02-21 11:10:43 |
Judging History
answer
#include<iostream>
#include<cstdio>
using namespace std;
#define fo(i,a,b) for(int i=a;i<=b;++i)
#define fod(i,a,b) for(int i=a;i>=b;--i)
#define ll long long
int read(){
int u=0;
char c=getchar();
while(c>'9'||c<'0')c=getchar();
while(c>='0'&&c<='9'){
u=u*10+c-48;
c=getchar();
}
return u;
}
int q,K,m,er[30],n=1;
int gcd(int x,int y){
if(!y)return x;
return gcd(y,x%y);
}
int add(int x,int y){
int u=0;
fo(i,0,m-1){
u+=((x/er[i]%K)+(y/er[i]%K))%K*er[i];
}
return u;
}
int cf(int x,int y){
int u=0;
fo(i,0,m-1){
u+=((x/er[i]%K)*y%K+K)%K*er[i];
}
return u;
}
ll h=0;
pair<ll,ll> kgcd(ll x,ll y){
if(!y)return {h,0};
pair<ll,ll>u=kgcd(y,x%y);
return {u.second,u.first-u.second*(x/y)};
}
int B[33];
int fa[19][200011],deep[200011];
int c[200011];
void check(int i){
if(K%(B[i]/er[i])!=0){
h=gcd(K,B[i]);
pair<ll,ll>u=kgcd(B[i]/er[i],K);
u.first%=K;
B[i]=cf(B[i],u.first);
}
}
void Ins(int x){
fod(i,m-1,0){
if(x/er[i]>0){
if(!B[i]){
B[i]=x;
x=cf(x,K/gcd(x/er[i],K));
}
while(x/er[i]>0){
int u=(B[i]/er[i])/(x/er[i]),v=0;
v=add(B[i],cf(x,-u));
B[i]=x,x=v;
}
check(i);
}
}
}
int find(int x,int y){
if(deep[x]<deep[y])swap(x,y);
fod(i,18,0){
if(deep[fa[i][x]]>=deep[y])x=fa[i][x];
}
if(x==y)return x;
fod(i,18,0){
if(fa[i][x]&&fa[i][x]!=fa[i][y])
x=fa[i][x],y=fa[i][y];
}
return fa[0][x];
}
int main(){
q=read();
K=read();
m=read();
er[0]=1;
fo(i,1,m)er[i]=er[i-1]*K;
deep[1]=1;
while(q){
--q;
int opt=read();
if(opt==1){
int x=read(),v=read();
fa[0][++n]=x;
fo(i,1,18)fa[i][n]=fa[i-1][fa[i-1][n]];
deep[n]=deep[x]+1;
c[n]=add(c[x],v);
Ins(cf(v,2));
}
if(opt==2){
int x=read(),y=read(),v=read();
int lca=find(x,y),u=0;
fo(i,0,m-1){
u+=((c[x]/er[i]%K)+(c[y]/er[i]%K)+(v/er[i]%K)-(c[lca]/er[i]*2%K)+K)%K*er[i];
}
Ins(u);
}
if(opt==3){
int x=read(),y=read();
int lca=find(x,y),u=0;
fo(i,0,m-1){
u+=((c[x]/er[i]%K)+(c[y]/er[i]%K)-(c[lca]/er[i]*2%K)+K)%K*er[i];
}
fod(i,m-1,0){
if(B[i]){
int v=(u/er[i]%K)/(B[i]/er[i]);
u=add(u,cf(B[i],-v));
}
}
printf("%lld\n",u);
}
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 2
Accepted
Test #1:
score: 2
Accepted
time: 2ms
memory: 3800kb
input:
30 7 3 1 1 301 1 1 236 1 2 278 3 2 4 3 2 4 2 1 4 265 1 1 242 1 4 278 1 6 337 3 2 3 2 5 7 304 2 5 6 34 1 4 178 3 6 7 3 5 7 3 1 4 1 1 178 3 3 4 3 1 6 3 3 4 2 6 7 131 1 1 213 3 1 3 2 3 10 11 3 4 6 2 5 9 169 1 6 9 2 5 10 29 1 9 111 3 9 11
output:
0 0 0 0 0 0 0 0 0 0 0 0
result:
ok 12 lines
Test #2:
score: 0
Accepted
time: 0ms
memory: 3640kb
input:
30 9 3 1 1 694 1 2 251 1 2 623 2 2 4 109 3 3 4 3 1 2 2 2 4 611 1 4 595 2 2 5 477 2 2 5 363 3 1 3 2 1 5 121 1 2 225 2 1 5 214 2 3 6 706 3 3 4 2 2 3 122 2 2 3 621 3 2 3 3 2 4 2 1 5 630 1 5 598 3 4 5 3 1 3 1 2 665 2 1 2 331 2 1 6 449 1 2 387 3 3 6 3 4 6
output:
0 0 0 0 0 0 0 0 0 0
result:
ok 10 lines
Test #3:
score: 0
Accepted
time: 0ms
memory: 3656kb
input:
30 4 5 1 1 854 1 1 467 1 2 708 2 2 4 529 1 4 115 1 4 444 2 3 4 108 2 2 5 724 2 1 3 375 1 5 827 2 5 6 974 1 3 73 3 2 3 2 2 3 140 3 5 6 2 6 8 787 3 1 5 1 5 971 3 4 6 2 4 5 816 3 7 8 3 2 4 1 6 855 2 5 10 39 2 6 9 280 2 6 10 662 3 7 10 1 6 412 3 4 7 1 6 276
output:
0 256 256 256 0 0 0 0
result:
ok 8 lines
Test #4:
score: 0
Accepted
time: 2ms
memory: 3860kb
input:
30 6 4 1 1 1246 1 1 825 1 3 843 2 1 3 186 2 2 3 228 2 1 3 1187 3 2 3 3 1 4 1 3 942 3 1 2 1 5 779 2 3 4 775 2 1 2 275 2 1 3 309 2 5 6 1175 3 2 6 1 6 1084 3 4 6 1 7 176 3 5 6 2 3 8 431 3 2 6 3 1 4 1 8 725 3 7 9 3 1 4 3 6 7 3 2 4 3 1 6 1 5 972
output:
1 6 7 0 0 0 0 0 0 0 0 0 0
result:
ok 13 lines
Test #5:
score: 0
Accepted
time: 2ms
memory: 3588kb
input:
30 6 4 1 1 1050 1 2 312 1 3 665 2 1 4 49 2 1 3 394 2 3 4 1225 3 1 4 1 1 381 3 1 2 1 3 933 1 3 551 2 2 6 521 3 3 5 2 2 6 1219 3 3 7 1 6 953 1 3 403 2 1 7 624 1 8 981 3 1 2 1 9 1052 2 4 9 971 2 5 8 575 3 1 7 2 6 9 953 2 1 10 347 3 3 11 2 3 9 878 1 6 991 2 6 11 681
output:
1 0 1 1 0 0 0
result:
ok 7 lines
Test #6:
score: 0
Accepted
time: 2ms
memory: 3560kb
input:
30 4 5 1 1 48 1 2 924 1 2 587 3 3 4 2 1 3 63 1 1 600 2 2 5 747 1 5 252 2 2 5 777 2 2 3 119 1 3 914 1 1 708 2 2 3 670 2 3 5 526 3 3 7 1 5 816 1 9 401 1 2 364 2 7 10 16 2 10 11 254 1 6 641 1 10 406 2 6 10 324 1 5 29 1 12 493 2 3 15 125 1 12 95 1 4 370 2 8 16 766 1 11 307
output:
341 0
result:
ok 2 lines
Test #7:
score: 0
Accepted
time: 2ms
memory: 3584kb
input:
30 3 6 1 1 358 1 2 16 1 1 636 1 1 156 1 4 512 3 3 4 3 5 6 3 1 2 2 2 5 271 3 4 6 2 3 5 5 1 2 566 3 3 4 3 4 6 3 2 3 2 4 6 472 2 2 6 119 1 1 260 2 1 8 488 1 7 345 1 8 368 2 6 9 649 1 1 553 2 1 9 416 3 8 9 1 10 630 1 9 156 1 3 14 1 4 407 3 4 10
output:
0 0 0 0 0 0 0 0 0
result:
ok 9 lines
Test #8:
score: 0
Accepted
time: 2ms
memory: 3796kb
input:
3 8 3 1 1 401 1 2 0 3 1 2
output:
179
result:
ok single line: '179'
Subtask #2:
score: 0
Wrong Answer
Dependency #1:
100%
Accepted
Test #9:
score: 11
Accepted
time: 3ms
memory: 3660kb
input:
996 4 8 1 1 43515 1 1 674 1 1 0 3 3 4 1 3 26873 3 3 5 3 3 4 1 2 0 1 5 26201 1 7 0 3 1 3 3 2 6 1 2 2722 1 4 674 1 10 35328 3 3 5 1 2 2048 3 10 11 2 2 8 34808 3 10 11 3 1 4 3 3 11 3 3 7 3 1 2 1 2 10753 3 12 13 3 3 4 1 12 32928 3 9 13 3 3 8 2 3 10 3 3 5 8 1 9 34978 1 13 2722 3 8 14 3 2 3 1 9 43681 3 7 ...
output:
0 26873 0 0 0 24825 0 0 0 0 1024 504 0 0 0 1024 17496 1528 504 1528 16640 504 1024 1528 1528 16640 16472 16640 16472 0 0 504 504 504 0 16640 1024 504 504 504 0 0 504 0 504 16640 0 504 0 504 16640 16640 16640 0 0 0 0 0 504 0 0 16472 0 0 1024 1024 504 504 0 504 0 16640 504 0 0 0 504 16640 0 0 504 504 ...
result:
ok 459 lines
Test #10:
score: -11
Wrong Answer
time: 3ms
memory: 3620kb
input:
997 6 6 1 1 12369 1 1 31248 3 1 2 2 1 2 43616 3 1 2 3 1 2 1 1 15625 1 4 15627 3 2 4 1 1 31251 1 1 31249 3 3 6 1 5 31253 1 3 4 1 7 31252 1 2 3 1 7 15626 3 6 7 1 4 15627 3 5 12 1 6 2 1 12 0 3 4 6 3 8 14 3 1 7 1 8 31252 1 6 4 3 12 17 1 9 31249 1 10 0 1 18 4 3 5 19 1 8 12861 1 3 16431 1 5 16155 1 16 405...
output:
12369 12366 12366 12366 0 0 0 0 0 0 0 0 0 9474 9474 9474 0 0 72 72 72 9330 9402 9330 0 9330 9330 9330 0 0 0 0 0 9330 9330 0 9330 0 0 0 0 9330 0 9330 9330 0 0 0 0 9330 9330 9330 9330 9330 9330 0 0 9330 0 0 9330 0 0 9330 9330 0 9330 9330 9330 9330 0 0 0 9330 0 0 0 9330 9330 9330 9330 0 9330 9330 9330 ...
result:
wrong answer 19th lines differ - expected: '0', found: '72'
Subtask #3:
score: 0
Wrong Answer
Test #21:
score: 0
Wrong Answer
time: 1388ms
memory: 11752kb
input:
198517 3 16 1 1 40710744 1 2 21885097 1 1 23592366 1 4 7387074 1 5 16074177 1 1 41027400 1 4 18082971 1 2 12822448 1 1 2286557 1 1 27896295 1 11 14532760 1 8 2357296 1 11 9190559 1 6 40503152 3 4 11 3 1 7 3 3 7 3 8 14 3 12 15 3 2 3 1 10 34606866 1 13 42718465 1 16 30353561 3 5 11 3 2 6 3 16 18 1 3 2...
output:
342 0 0 227 416 442 28 18 0 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
result:
wrong answer 1st lines differ - expected: '0', found: '342'
Subtask #4:
score: 0
Wrong Answer
Test #26:
score: 19
Accepted
time: 113ms
memory: 9080kb
input:
198891 26426880 1 1 1 0 2 1 2 0 3 1 2 1 1 0 3 2 3 3 1 2 1 2 0 1 2 0 1 3 0 1 6 0 2 1 6 0 2 3 6 0 3 2 3 1 2 13213440 1 2 13213440 1 4 13213440 3 4 10 1 1 13213440 2 3 4 0 2 3 8 13213440 1 1 0 1 12 0 1 13 0 1 3 0 3 2 11 3 2 12 2 11 14 13213440 1 6 0 2 12 14 0 2 1 2 0 1 10 0 1 12 0 2 3 13 0 3 12 14 3 1 ...
output:
0 0 0 0 13213440 13213440 0 0 0 13213440 0 0 13213440 0 13213440 0 13213440 0 13213440 13213440 13213440 13213440 13213440 0 13213440 13213440 0 13213440 13213440 0 0 0 13213440 0 13213440 0 13213440 0 0 0 13213440 13213440 0 13213440 13213440 13213440 13213440 0 13213440 13213440 13213440 13213440 ...
result:
ok 66344 lines
Test #27:
score: -19
Wrong Answer
time: 116ms
memory: 9056kb
input:
199011 22494024 1 1 1 11247012 1 1 11247012 2 1 2 11247012 3 1 3 1 3 11247012 2 1 4 0 1 1 11247012 1 2 11247012 2 4 5 11247012 3 1 2 1 5 0 3 2 5 2 5 6 11247012 2 2 3 0 1 1 11247012 3 4 8 2 1 5 11247012 3 5 7 1 6 11247012 1 4 0 3 1 7 2 1 9 11247012 1 7 11247012 2 3 4 11247012 3 4 5 2 1 9 11247012 3 5...
output:
11247012 11247012 0 11247012 0 11247012 11247012 11247012 0 11247012 0 0 0 11247012 11247012 11247012 11247012 11247012 11247012 11247012 0 11247012 11247012 11247012 11247012 11247012 11247012 0 0 0 11247012 11247012 11247012 0 0 0 0 11247012 0 11247012 11247012 0 11247012 0 0 11247012 0 11247012 1...
result:
wrong answer 1640th lines differ - expected: '1606716', found: '4'
Subtask #5:
score: 15
Accepted
Test #30:
score: 15
Accepted
time: 1035ms
memory: 9276kb
input:
199458 2 25 1 1 31252443 2 1 2 22827339 1 2 13517756 1 2 5635412 1 3 33397078 1 3 33542998 2 3 5 1484991 3 5 6 2 1 3 7938846 2 1 2 3665458 1 3 29150948 3 4 5 1 3 733545 1 7 4698781 1 7 21699192 1 6 10854390 3 3 8 3 4 8 1 2 6889338 2 1 12 27646676 2 6 8 24407215 1 11 20847453 3 4 13 1 6 16891344 3 4 ...
output:
150016 891079 733545 1048849 7306736 7012 6336311 7310241 705870 794721 112806 777734 2522042 203310 370916 2339461 699806 747148 597151 969956 2633367 376785 884917 884917 331441 2696956 2423527 2304668 2457533 2783258 690228 864462 360811 124716 2098167 48248 2869827 605003 235881 2739062 2861794 ...
result:
ok 66461 lines
Test #31:
score: 0
Accepted
time: 1026ms
memory: 9072kb
input:
198986 2 25 1 1 11331234 1 2 24833898 2 1 3 10628416 3 2 3 1 3 6115878 2 2 4 23717273 1 3 18406568 2 2 4 1949969 1 4 6063130 1 6 25760596 3 1 2 3 5 7 3 5 6 3 2 6 3 1 7 1 6 31753825 3 1 4 2 3 4 6115878 3 2 6 2 3 5 22447229 3 1 3 2 3 4 6115878 2 4 7 1813362 3 2 4 2 1 8 8192320 3 3 5 1 7 114729 1 9 188...
output:
969698 11331234 9443776 2324169 990686 1086581 11610035 990686 10628416 1949969 2269429 1949969 571284 3254790 682010 502346 824812 623366 377762 377762 2376509 884877 2316090 2244147 665245 341785 922389 928237 744294 69811 404242 789948 620664 513259 317968 222762 169970 969698 12365 1046658 91964...
result:
ok 65927 lines
Test #32:
score: 0
Accepted
time: 1062ms
memory: 8956kb
input:
198119 2 25 1 1 1988220 2 1 2 10935842 2 1 2 10935842 3 1 2 1 2 9175257 2 1 2 30426983 1 3 21520990 1 2 7244347 2 3 5 19700729 1 3 24753647 3 4 6 2 1 2 30426983 3 2 4 1 6 25686082 2 1 6 22244116 1 7 20608501 3 3 6 1 2 29561714 2 2 3 21107138 1 1 21122181 1 6 7460982 2 7 9 19503627 1 9 8058976 3 1 8 ...
output:
1988220 3266481 684956 994474 48107 1167209 4443137 4685362 1360512 4639448 238700 348592 278885 295451 489693 344667 180320 328346 407326 454344 485048 139415 148539 301162 209675 136220 454344 201497 48475 346271 411773 397728 487925 400145 418154 120548 273314 523155 476405 141994 243836 128983 7...
result:
ok 65949 lines
Subtask #6:
score: 3
Accepted
Test #33:
score: 3
Accepted
time: 30ms
memory: 4896kb
input:
49958 1023 2 1 1 122428 1 1 917186 2 2 3 53148 1 3 876461 2 1 3 968146 2 2 4 569341 2 3 4 199413 2 1 4 238371 1 3 127427 1 2 887225 2 1 4 776059 2 4 6 155479 2 1 6 795533 1 5 159578 3 5 6 2 2 5 758778 2 5 6 601115 3 4 7 1 4 202224 2 5 6 902346 3 1 6 3 5 7 3 3 5 1 2 791251 1 5 502214 2 6 7 929048 1 6...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 16607 lines
Test #34:
score: 0
Accepted
time: 742ms
memory: 9088kb
input:
198392 7 9 1 1 23598910 3 1 2 1 1 25616681 2 1 2 22101090 2 2 3 25455751 3 1 2 3 1 2 1 3 25668120 3 1 3 1 3 23878180 1 4 10885281 1 1 5873751 2 2 7 31608236 3 2 3 3 3 5 2 2 6 37313936 2 1 6 36853293 2 4 7 6773989 2 1 7 19143946 3 2 7 3 3 7 3 1 2 1 1 31756932 3 3 6 2 5 8 39585364 1 2 27162269 3 4 5 2...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 65758 lines
Subtask #7:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
0%