Rt,直接DFS找环会挂,Tarjan找环可以过,不知道是不是写挂了。
DFS
int dfs(int x,int op){
if(v[x])return false;
v[x]=op;
for(int i=h[x];i;i=e[i].nxt){
if(v[e[i].to]==op)return true;
if(dfs(e[i].to,op))return true;
}
return false;
}
主函数里
op=0;
rep(i,1,mx)if(!v[i]){
if(dfs(i,++op)){puts("-1");return;}
}