QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#472417 | #4895. Lovely Dogs | zyxawa | 0 | 870ms | 41416kb | C++14 | 1.7kb | 2024-07-11 16:17:56 | 2024-07-11 16:17:57 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,d,u,v,t,now,sum[200001],a[200001],p[200001],mu[200001],g[200001],son[200001],siz[200001],ans[200001];
basic_string <int> G[200001],F[200001];
long long val[200001];
void dfs3(int x,int u,int h,int v){
if(v){
for(int i:F[a[x]]){
long long w=val[i]/__gcd(val[i],1ll*a[x]);
if(w<=n) now+=mu[i]*sum[w];
}
for(int i:F[a[x]]) sum[i]+=g[a[x]];
}
else{
for(int i:F[a[x]]) sum[i]-=g[a[x]];
for(int i:F[a[x]]){
long long w=val[i]/__gcd(val[i],1ll*a[x]);
if(w<=n) now-=mu[i]*sum[w];
}
}
for(int y:G[x]) if(y!=u&&y!=h) dfs3(y,x,h,v);
}
void dfs2(int x,int u,int k){
for(int y:G[x]) if(y!=u&&y!=son[x]) dfs2(y,x,0);
if(son[x]) dfs2(son[x],x,1);
dfs3(x,u,son[x],1),ans[x]+=now;
if(!k) dfs3(x,u,0,0);
}
void dfs1(int x,int u){
int v=a[x],mx=0;
for(int i=1;i<=t&&p[i]*p[i]<=v;i++){
if(v%p[i]==0){
int cnt=0;
while(v%p[i]==0) cnt++,v/=p[i];
mx=max(mx,cnt);
}
}
if(v>1) mx=max(mx,1);
siz[x]=1,ans[x]=mx*2<=d,val[x]=1;
for(int i=1;i<=d+1&&val[x]<=1ll*n*n;i++) val[x]*=x;
for(int y:G[x]) if(y!=u) dfs1(y,x),ans[x]+=ans[y],siz[x]+=siz[y],siz[y]>siz[son[x]]&&(son[x]=y,0);
}
int main(){
scanf("%d%d",&n,&d);
for(int i=1;i<n;i++) scanf("%d%d",&u,&v),G[u]+=v,G[v]+=u;
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
mu[1]=g[1]=1;
for(int i=2;i<=n;i++){
if(!p[i]) p[++t]=i,mu[i]=g[i]=-1;
for(int j=1;j<=t&&i*p[j]<=n;j++){
mu[i*p[j]]=-mu[i],g[i*p[j]]=-g[i];
if(i%p[j]==0){mu[i*p[j]]=0;break;}
}
}
for(int i=1;i<=n;i++) for(int j=i;j<=n;j+=i) F[j]+=i;
dfs1(1,0),dfs2(1,0,1);
for(int i=1;i<=n;i++) printf("%d\n",ans[i]);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 22420kb
input:
20 2 18 8 18 11 13 19 10 8 9 11 4 8 9 15 9 17 2 1 13 18 20 18 1 8 12 17 7 16 5 11 16 15 6 19 14 16 1 3 2 15 5 13 20 6 16 18 9 19 17 7 14 10 11 3 1 12 4 8
output:
-96 1 1 1 0 1 0 -58 -12 1 -19 1 1 1 -2 0 1 -31 1 0
result:
wrong answer 1st words differ - expected: '16', found: '-96'
Subtask #2:
score: 0
Wrong Answer
Test #24:
score: 0
Wrong Answer
time: 3ms
memory: 22484kb
input:
2000 1 134 1468 867 1750 351 1220 1690 1888 1685 134 585 282 1142 643 206 271 260 1833 1987 770 1029 1667 322 1371 341 518 601 915 119 893 1933 1502 951 1785 1056 1630 1957 1208 96 55 1508 1212 331 427 505 151 1378 1486 1545 697 1459 629 202 997 180 1917 1638 1177 1244 1896 302 658 1433 1605 1318 19...
output:
422751 12269 -348 12423 12469 2780 3584 12014 2780 12452 12015 3773 12573 -424 12501 3720 -348 14975 12501 12398 12227 14915 3780 12273 12282 3322 3322 14933 -8 12446 12426 3444 12695 -441 -342 12394 12326 14967 -2 12015 195 12033 -348 3734 -326 12089 14849 12441 12015 12250 14825 12427 11941 14972 ...
result:
wrong answer 1st words differ - expected: '581', found: '422751'
Subtask #3:
score: 0
Time Limit Exceeded
Test #45:
score: 0
Time Limit Exceeded
input:
200000 20 117994 12616 53490 106425 103660 50033 132640 78252 58384 19939 69183 10015 39098 165030 179856 130356 65245 57831 18234 83378 4240 154896 177149 102260 4634 180087 132390 19627 98506 60775 1890 120740 87908 21917 41323 192721 181885 96684 69412 139951 9800 38301 59025 29879 186185 81402 1...
output:
1475391367 2003 0 2003 -135 -65 2003 2002 -5 1 2003 1898 2003 2003 2003 1 2003 1 -35 1 2003 2003 2003 2002 2003 1 2003 2003 -2 2003 2002 1 2003 1967 -209 2003 1 2003 1 2003 1 728 1 1 1 1982 2003 2003 2003 2003 -230 2003 2003 1 2000 2003 1 2002 1 2003 1 1999 1 -104 2003 1 1 2003 2000 1975 2003 2002 2...
result:
Subtask #4:
score: 0
Wrong Answer
Test #50:
score: 0
Wrong Answer
time: 370ms
memory: 40320kb
input:
200000 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 1 61...
output:
598264317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 words differ - expected: '-44916', found: '598264317'
Subtask #5:
score: 0
Wrong Answer
Test #55:
score: 0
Wrong Answer
time: 373ms
memory: 40284kb
input:
200000 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 1 61...
output:
667153163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 words differ - expected: '-44916', found: '667153163'
Subtask #6:
score: 0
Wrong Answer
Test #78:
score: 0
Wrong Answer
time: 142ms
memory: 26816kb
input:
50000 1 8097 41839 17674 41774 40520 8024 5786 38261 20664 43471 1217 49276 11185 40807 14186 25584 31704 14814 42333 41475 13053 39565 45938 30104 5826 39463 5031 10814 43784 6042 58 33849 42978 18978 36307 33276 34769 4351 27884 37532 27528 29431 29451 39345 10946 9667 19016 47269 7911 30103 10308...
output:
303149188 167371 163397 375809 -207 812261 266680 253499 835081 826928 846448 394396 395063 402884 278358 796960 265822 804649 271223 775690 162247 168099 -2489 270948 816367 811726 805942 -990 809409 806096 -3104 2456 253762 167186 774981 387242 4001 265767 829674 162948 774796 783086 827405 2355 9...
result:
wrong answer 1st words differ - expected: '-9152', found: '303149188'
Subtask #7:
score: 0
Wrong Answer
Test #103:
score: 0
Wrong Answer
time: 870ms
memory: 41416kb
input:
200000 1 118863 188865 188022 168616 118976 119404 178852 33449 81624 40431 151228 160976 68943 136313 57200 117631 147789 139875 100240 55537 164811 145415 103548 186750 15010 168029 155731 107005 69836 1502 86171 122700 83448 131948 189162 94464 128210 2509 49724 183329 174782 192641 27687 71315 1...
output:
635926057 -158099 665115 253463 2575763 2252134 2134912 -142475 723691 287237 -182914 2309641 2154278 2574019 1117960 330521 2202076 290472 2249062 -409406 303595 2087415 2105779 1301707 2214757 23771 280965 299241 299434 2275552 2229922 -416877 33804 -182959 2237998 2291877 2026134 -182759 2423733 ...
result:
wrong answer 1st words differ - expected: '-44916', found: '635926057'