QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#82098#5402. 术树数zhouhuanyi22 1541ms13996kbC++232.3kb2023-02-27 08:19:532023-02-27 08:19:56

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-27 08:19:56]
  • 评测
  • 测评结果:22
  • 用时:1541ms
  • 内存:13996kb
  • [2023-02-27 08:19:53]
  • 提交

answer

#include<iostream>
#include<cstdio>
#define N 200000
#define M 26
using namespace std;
int read()
{
    char c=0;
    int sum=0;
    while (c<'0'||c>'9') c=getchar();
    while ('0'<=c&&c<='9') sum=sum*10+c-'0',c=getchar();
    return sum;
}
int gcd(int x,int y)
{
    if (!y) return x;
    return gcd(y,x%y);
}
int length,q,k,m,x,v;
long long sx,sy;
struct reads
{
    int d[M+1];
};
reads tmp,dp[N+1],c[M+1];
reads operator + (reads a,reads b)
{
    for (int i=0;i<=m-1;++i) a.d[i]=(a.d[i]+b.d[i])%k;
    return a;
}
reads operator * (reads a,int b)
{
    for (int i=0;i<=m-1;++i) a.d[i]=1ll*a.d[i]*b%k;
    return a;
}
reads F(int x)
{
    for (int i=0;i<=m-1;++i) tmp.d[i]=x%k,x/=k;
    return tmp;
}
int G(reads x)
{
    int res=0;
    for (int i=m-1;i>=0;--i) res=res*k+x.d[i];
    return res;
}
void exgcd(int x,int y)
{
    if (!y)
    {
	sx=1,sy=0;
	return;
    }
    exgcd(y,x%y);
    long long tx=sx;
    sx=sy,sy=tx-(x/y)*sy;
    return;
}
reads solve(int num,reads x)
{
    int ds=gcd(x.d[num],k);
    exgcd(x.d[num]/ds,k/ds),sx=(sx%k+k)%k;
    return x*sx;
}
reads get_gcd(int num,reads a,reads b,reads &c)
{
    a=solve(num,a),b=solve(num,b),exgcd(a.d[num],b.d[num]),sx=(sx%k+k)%k,sy=(sy%k+k)%k;
    if (!sx) c=b;
    else c=a;
    return a*sx+b*sy;
}
void Insert(reads x)
{
    int ds;
    reads y;
    for (int i=m-1;i>=0;--i)
	if (x.d[i])
	{
	    if (!c[i].d[i]) c[i]=x,ds=k/gcd(x.d[i],k),x=x*k;
	    else c[i]=get_gcd(i,c[i],x,y),ds=(k-y.d[i])/c[i].d[i],y=y+c[i]*ds;
	}
    return;
}
reads query(reads x)
{
    int ds,dst;
    reads y;
    for (int i=m-1;i>=0;--i)
	if (x.d[i]&&c[i].d[i])
	    y=solve(i,c[i]),ds=x.d[i]%y.d[i],dst=((ds-x.d[i])/y.d[i]+k)%k,x=x+y*dst;
    return x;
}
int main()
{
    int op,x,y,v;
    q=read(),k=read(),m=read();
    if (k&1)
    {
	while (q--)
	{
	    op=read();
	    if (op==1) x=read(),v=read();
	    else if (op==2) x=read(),y=read(),v=read();
	    else x=read(),y=read(),puts("0");
	}
	return 0;
    }
    length=1;
    while (q--)
    {
	op=read();
	if (op==1) x=read(),v=read(),dp[++length]=dp[x]+F(v),Insert(F(v)+F(v));
	else if (op==2) x=read(),y=read(),v=read(),Insert(dp[x]+dp[y]+F(v));
	else x=read(),y=read(),printf("%d\n",G(query(dp[x]+dp[y])));
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 2
Accepted
time: 2ms
memory: 3304kb

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: 1ms
memory: 3304kb

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: -2
Wrong Answer
time: 2ms
memory: 3392kb

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:

8
288
896
484
960
288
576
480

result:

wrong answer 1st lines differ - expected: '0', found: '8'

Subtask #2:

score: 0
Skipped

Dependency #1:

0%

Subtask #3:

score: 0
Wrong Answer

Test #21:

score: 11
Accepted
time: 16ms
memory: 3432kb

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:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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 99662 lines

Test #22:

score: -11
Wrong Answer
time: 521ms
memory: 13996kb

input:

198073 8 8
1 1 4007183
1 1 411647
1 1 3301064
1 1 2747675
1 3 11141272
1 3 4308435
1 4 15582931
1 5 11340890
1 2 9172283
1 9 542280
1 10 12209796
1 3 2829956
3 1 3
1 3 724504
3 2 14
3 3 14
3 9 12
3 7 10
1 1 3594204
1 14 13600647
1 15 4589767
3 10 14
1 4 10564184
1 13 1781174
1 19 6067505
1 9 6735060...

output:

5582457
6374504
9576984
9576001
15876648
15332545
11023113
3267648
6444664
10535680
9570136
2279528
15106584
10539016
3832640
6755104
13602560
14408736
8410624
525328
2015937
367337
9653521
165609
11813033
11175816
2802273
10754033
5263809
5540288
1242944
10767681
2005336
16464304
5215208
9554496
11...

result:

wrong answer 1st lines differ - expected: '262729', found: '5582457'

Subtask #4:

score: 19
Accepted

Test #26:

score: 19
Accepted
time: 53ms
memory: 10616kb

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: 0
Accepted
time: 59ms
memory: 10460kb

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:

ok 66431 lines

Test #28:

score: 0
Accepted
time: 57ms
memory: 10644kb

input:

198242 23269680 1
1 1 11634840
2 1 2 11634840
3 1 2
2 1 2 11634840
1 1 11634840
1 1 0
1 2 0
1 1 0
2 2 6 11634840
2 2 6 11634840
3 4 6
3 5 6
1 6 11634840
2 3 6 11634840
3 2 7
2 2 5 0
2 2 3 0
2 2 3 0
2 3 7 0
2 2 3 0
3 1 3
3 2 5
2 1 3 11634840
3 3 6
3 2 5
3 5 7
2 1 6 0
1 4 0
1 4 11634840
2 7 8 11634840...

output:

11634840
0
11634840
0
11634840
0
11634840
0
0
0
0
11634840
11634840
0
11634840
11634840
0
0
11634840
0
11634840
11634840
11634840
11634840
11634840
11634840
11634840
11634840
11634840
0
11634840
11634840
11634840
11634840
0
11634840
11634840
11634840
11634840
0
0
11634840
0
11634840
11634840
1163484...

result:

ok 66135 lines

Test #29:

score: 0
Accepted
time: 44ms
memory: 10444kb

input:

198177 22462440 1
1 1 15723708
3 1 2
1 2 0
3 2 3
2 2 3 17969952
2 1 2 20216196
1 1 15723708
3 2 3
2 1 3 11231220
2 1 2 11231220
1 1 11231220
2 1 3 2246244
2 1 2 20216196
3 3 4
1 4 8984976
2 5 6 4492488
2 3 6 4492488
2 2 5 4492488
1 4 17969952
1 6 20216196
3 3 7
1 1 15723708
1 4 0
3 3 9
3 1 5
1 7 449...

output:

2246244
0
0
0
0
0
2246244
2246244
2246244
0
0
2246244
0
0
0
0
2246244
2246244
0
2246244
0
0
0
0
0
2246244
2246244
0
0
2246244
2246244
0
0
0
2246244
2246244
2246244
0
2246244
0
2246244
0
0
0
0
2246244
0
0
2246244
2246244
0
0
0
0
2246244
0
2246244
0
0
0
2246244
0
2246244
2246244
2246244
0
2246244
0
22...

result:

ok 66146 lines

Subtask #5:

score: 0
Wrong Answer

Test #30:

score: 0
Wrong Answer
time: 1541ms
memory: 10672kb

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
9246295
733545
9473921
25447449
7012
17502286
26517565
32632530
15820374
15525092
1819763
27302017
1245275
17024335
30972185
24184978
16130235
14958813
10377217
13985952
1418660
9244197
9244197
8749089
12169753
20090169
22581136
31347745
13050968
9045668
18564880
25387600
24789536
13142572
32...

result:

wrong answer 2nd lines differ - expected: '891079', found: '9246295'

Subtask #6:

score: 3
Accepted

Test #33:

score: 3
Accepted
time: 2ms
memory: 3316kb

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: 9ms
memory: 3432kb

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:

0%