在基环树森林中删去不在环上的点,我经常这样写(错的)
void dfs(int x){ vis[x]=1; --in[f[x]]; if(!in[f[x]])dfs(f[x]); } int main(){ for(int i=1;i<=n;i++){ if(!in[i])dfs(i); } }
但是这样是错的,为什么?