愛在心中(強連通分量)

2021-07-27 16:16:29 字數 847 閱讀 6306

qaq

#include 

#include

#include

using

namespace

std;

int color[9999],c=0,num=0,low[9999],dfn[9999],top,f[9999],s[9999],fx[9999];

int n,m,ans;

int cnt,head[9999],net[99999],to[99999];

int flag[9999];

void add(int x,int y)

void dfs(int x)

else

if(f[tmp]==1)

} if(low[x]==dfn[x])

top--;

if(tot>1) ans++,fx[c]=1;

}}void find()

}}int main()

for(int i=1;i<=n;i++)

if(!dfn[i]) dfs(i);//跑tarjan來求強連通分量

printf("%d\n",ans);

find();//找有無被其他人全部愛的天使

int z;

ans=0;

for(int i=1;i<=c;i++)

if(flag[i]==0) z=i,ans++;//找符合條件的強連通分量

if(ans!=1||fx[z]==0) printf("-1");//如果有不止乙個符合條件的強連通分量,那麼就不會有乙個符合條件的天使

else

return

0;}

codevs 2822 愛在心中(強連通分量)

codevs 2822 愛在心中 題目描述 description 每個人都擁有乙個夢,即使彼此不相同,能夠與你分享,無論失敗成功都會感動。愛因為在心中,平凡而不平庸,世界就像迷宮,卻又讓我們此刻相逢our home。在愛的國度裡有n個人,在他們的心中都有著乙個愛的名單,上面記載著他所愛的人 不會出...

CODE VS 2822 愛在心中 強連通分量

題目傳送門 第二問的答案要求該強聯通分量的節點數大於1。我就是在這裡wa了好多次,以後一定要注意讀題,汗 還是第二問,在輸出每個強聯通分量中的節點編號之前記得排序。資料坑 打的比較亂,將就著看看吧 附上ac include include include include using namespac...

強連通分量 tarjan求強連通分量

雙dfs方法就是正dfs掃一遍,然後將邊反向dfs掃一遍。挑戰程式設計 上有說明。雙dfs 1 include 2 include 3 include 4 include 5 6using namespace std 7const int maxn 1e4 5 8 vector g maxn 圖的鄰...