QOJ.ac
QOJ
The 2nd Universal Cup Finals is coming! Check out our event page, schedule, and competition rules!
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#82092 | #5402. 术树数 | zhouhuanyi | 22 | 403ms | 15152kb | C++23 | 2.2kb | 2023-02-27 07:49:04 | 2023-02-27 07:49:07 |
Judging History
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)
{
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;
return a*sx+b*sy;
}
void Insert(reads x)
{
int ds;
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),ds=(k-x.d[i])/c[i].d[i],x=x+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: 3308kb
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: 2ms
memory: 3320kb
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: 1ms
memory: 3412kb
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:
37 324 321 276 1 100 64 1
result:
wrong answer 1st lines differ - expected: '0', found: '37'
Subtask #2:
score: 0
Skipped
Dependency #1:
0%
Subtask #3:
score: 0
Wrong Answer
Test #21:
score: 11
Accepted
time: 16ms
memory: 3272kb
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: 299ms
memory: 15152kb
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:
262767 2105592 9112 4725 2097694 2142323 2110015 2134208 2110042 2130592 730 2130024 2400780 2134056 2110070 2372230 303746 45188 12982 8340 295543 299609 51 33403 2359339 2130618 2130535 2364133 4291 295106 37602 2359539 299226 2101296 299736 33366 2392610 2359850 2097212 168 2360042 262691 2101832...
result:
wrong answer 1st lines differ - expected: '262729', found: '262767'
Subtask #4:
score: 19
Accepted
Test #26:
score: 19
Accepted
time: 36ms
memory: 11672kb
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: 46ms
memory: 11912kb
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: 69ms
memory: 10404kb
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: 60ms
memory: 10380kb
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: 403ms
memory: 10524kb
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 6756252 6419123 7105140 777734 2522042 203310 6847030 5136471 699806 6730846 597151 969956 4586565 6843651 884917 884917 331441 2696956 4794421 5175374 4762991 2783258 690228 6349340 6837177 275125 2098167 48248 2869827 605003 235881 2739062 ...
result:
wrong answer 9th lines differ - expected: '705870', found: '6756252'
Subtask #6:
score: 3
Accepted
Test #33:
score: 3
Accepted
time: 7ms
memory: 3260kb
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: 20ms
memory: 3260kb
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%