树连抛分 dfs2两种写法为什么相同?
查看原帖
树连抛分 dfs2两种写法为什么相同?
891956
TempestMiku楼主2023/5/8 16:34
inline void dfs2(int now,int topp){
    top[now]=topp;
    dfn[now]=++num;
    rk[num]=now;
    if(son[now]) {
    	dfs2(son[now],topp);
	}
    
    
    
    for(register int i=head[now];i;i=nxt[i]){
        int y=to[i];
        if(y==f[now]) continue;
        if(y==son[now]) continue;
        dfs2(y,y);
    }
}
inline void dfs2(int now,int topp){
    top[now]=topp;
    dfn[now]=++num;
    rk[num]=now;
    if(!son[now]) return ;

    dfs2(son[now],topp);
    
    for(register int i=head[now];i;i=nxt[i]){
        int y=to[i];
        if(y==f[now]) continue;
        if(y==son[now]) continue;
        dfs2(y,y);
    }
}
2023/5/8 16:34
加载中...