Vijos T1626 愛在心中

2022-04-10 16:21:40 字數 1819 閱讀 1912

「每個人都擁有乙個夢,即使彼此不相同,能夠與你分享,無論失敗成功都會感動。愛因為在心中,平凡而不平庸,世界就像迷宮,卻又讓我們此刻相逢our home。」

在愛的國度裡有n個人,在他們的心中都有著乙個愛的名單,上面記載著他所愛的人(不會出現自愛的情況)。愛是具有傳遞性的,即如果a愛b,b愛c,則a也愛c。

如果有這樣一部分人,他們彼此都相愛,則他們就超越了一切的限制,用集體的愛化身成為乙個愛心天使。

現在,我們想知道在這個愛的國度裡會出現多少愛心天使。而且,如果某個愛心天使被其他所有人或愛心天使所愛則請輸出這個愛心天使是由哪些人構成的,否則輸出-1。

第1行,兩個數n、m,代表愛的國度裡有n個人,愛的關係有m條。

第2到第m+1行,每行兩個數a、b,代表a愛b。

第1行,乙個數,代表愛的國度裡有多少愛心天使。

第2行,如果某個愛心天使被其他所有人和愛心天使所愛則請輸出這個愛心天使是由哪些人構成的(從小到大排序),否則輸出-1。

6 7

1 22 3

3 24 2

4 55 6

6 4

copy

2

2 3

copy

3 3

1 22 1

2 3

copy

1

-1

copy

各個測試點1s

對於40%的資料 n<=10 m<=100

對於80%的資料 n<=100 m<=1000

對於100%的資料 n<=1000 m<=10000

cai0715 原創

noip 2009·dream team 模擬賽 第一期 第四題

描述裡的 「如果某個愛心天使被其他所有人或愛心天使所愛則請輸出這個愛心天使是由哪些人構成的」 的 或 應該是 和

不會自愛->原圖裡不會有獨立點    

第一問就是 縮點後新點個數 ,第二問 被所有人愛->出度為0 (要注意新圖 出現 愛心天使自愛的情況)~~~ 

1 #include 2 #include 3

4using

namespace

std;56

const

int n(10000*5);7

intn,m,u,v;89

inthead[n],sumedge;

10struct

edge

1115 }edge[n<<1

];16

void ins(int u,int

v)17

2122

intdfn[n],low[n],tim;

23int

stack[n],instack[n],top;

24int

point[n],col[n],sumcol;

25void dfs(int

now)

2636

if(low[now]==dfn[now])

3747 instack[now]=0;top--;48}

49}5051

intif_,ans,cn,cnt,an[n],s[n],cd[n];

5253

intmain()

54

68 printf("

%d\n

",ans);

69if(cn==1)70

78if(!if_) printf("

-1\n");

79return0;

80 }

愛在心中 tarjan 縮點

problem codevs 2822 愛在心中 id wzh 總耗時 4ms 總記憶體損耗 364kb 演算法 tarjan縮點floyd傳遞閉包 codevs 題目描述 description 每個人都擁有乙個夢,即使彼此不相同,能夠與你分享,無論失敗成功都會感動。愛因為在心中,平凡而不平庸,世...

codevs 2822 愛在心中

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

Codevs 2822 愛在心中

2822 愛在心中 時間限制 1 s 空間限制 128000 kb 傳送門題目等級 鑽石 diamond 題目描述 description 每個人都擁有乙個夢,即使彼此不相同,能夠與你分享,無論失敗成功都會感動。愛因為在心中,平凡而不平庸,世界就像迷宮,卻又讓我們此刻相逢our home。在愛的國度...