调了一个多小时了。一直卡在#33#34。现在过掉了,不过有个问题想问:
inline void dfs(int u,int fat){
fa[u]=fat,size[u]=size[fat]+1;
if(size[u]>maxx)maxx=size[u],far=u;
for(int i=fir[u];i;i=nxt[i]){
int v=to[i];
if(v!=fat)dfs(v,u);
}
return ;
}
这样的写法会 WA on #33
但是当我改成如下(可以确保我只改了这一处):
inline void dfs(int u,int fat){
if(size[u]>maxx)maxx=size[u],far=u;
for(int i=fir[u];i;i=nxt[i]){
int v=to[i];
if(v!=fat){
fa[v]=u;
size[v]=size[u]+1;
dfs(v,u);
}
}
return ;
}
就切掉了。想问两种写法有什么不一样吗