有向图tarjan,缩点
缩点:
if(belong[u]!=belong[v])
chu[u]++;//出度为0的缩点只能有一个,那么这个强连通分量里的牛都是受欢迎的
for(int i=1;i<=n;i++)
if(chu[i]) cnt++,w=belong[i];
if(cnt>=2) flg=0;break;
if(cnt==1) cout<<num[w]<<endl;//这个联通快一共几个牛
else cout<<-1<<endl;
有向图tarjan,缩点
缩点:
if(belong[u]!=belong[v])
chu[u]++;//出度为0的缩点只能有一个,那么这个强连通分量里的牛都是受欢迎的
for(int i=1;i<=n;i++)
if(chu[i]) cnt++,w=belong[i];
if(cnt>=2) flg=0;break;
if(cnt==1) cout<<num[w]<<endl;//这个联通快一共几个牛
else cout<<-1<<endl;