QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#82115 | #5402. 术树数 | zhouhuanyi | 22 | 424ms | 13904kb | C++23 | 2.3kb | 2023-02-27 08:38:21 | 2023-02-27 08:38:22 |
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],d1,d2;
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,reads b)
{
for (int i=0;i<=m-1;++i) a.d[i]=(a.d[i]-b.d[i]+k)%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)
{
exgcd(x.d[num],k),sx=(sx%k+k)%k;
return x*sx;
}
void get_gcd(int num,reads a,reads b)
{
if (!b.d[num])
{
d1=a,d2=b;
return;
}
get_gcd(num,b,a-b*(a.d[num]/b.d[num]));
return;
}
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*ds;
else get_gcd(i,solve(i,c[i]),solve(i,x)),c[i]=solve(i,d1),x=solve(i,d2);
}
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: 3432kb
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: 3196kb
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: 3484kb
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 326 329 286 9 108 104 8
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: 14ms
memory: 3364kb
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: 291ms
memory: 13904kb
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:
411647 2256232 197290 79575 2245178 2331889 2110377 2331972 2323146 2214800 205402 2155756 2469512 2136108 2249698 2495126 451488 176260 29622 260 369395 307785 55 107513 2424985 2204554 2138993 2364021 12615 303426 102994 2367937 299226 2175378 373482 33366 2401190 2368058 2097288 8494 2360008 2711...
result:
wrong answer 1st lines differ - expected: '262729', found: '411647'
Subtask #4:
score: 19
Accepted
Test #26:
score: 19
Accepted
time: 55ms
memory: 10436kb
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: 50ms
memory: 10624kb
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: 64ms
memory: 10408kb
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: 75ms
memory: 10352kb
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: 424ms
memory: 10508kb
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: 6ms
memory: 3252kb
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: 14ms
memory: 3316kb
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%