QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#79913#5402. 术树数MoQz20 1388ms11752kbC++2.2kb2023-02-21 11:10:432023-02-21 11:10:43

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-02-21 11:10:43]
  • 评测
  • 测评结果:20
  • 用时:1388ms
  • 内存:11752kb
  • [2023-02-21 11:10:43]
  • 提交

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;
}

詳細信息

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%