時間限制: 1 s
空間限制: 128000 kb
題目等級 : 鑽石 diamond
題解「每個人都擁有乙個夢,即使彼此不相同,能夠與你分享,無論失敗成功都會感動。愛因為在心中,平凡而不平庸,世界就像迷宮,卻又讓我們此刻相逢our home。」
在愛的國度裡有n個人,在他們的心中都有著乙個愛的名單,上面記載著他所愛的人(不會出現自愛的情況)。愛是具有傳遞性的,即如果a愛b,b愛c,則a也愛c。
如果有這樣一部分人,他們彼此都相愛,則他們就超越了一切的限制,用集體的愛化身成為乙個愛心天使。
現在,我們想知道在這個愛的國度裡會出現多少愛心天使。而且,如果某個愛心天使被其他所有人或愛心天使所愛則請輸出這個愛心天使是由哪些人構成的,否則輸出-1。
輸入描述 input description
第1行,兩個數n、m,代表愛的國度裡有n個人,愛的關係有m條。
第2到第m+1行,每行兩個數a、b,代表a愛b。
輸出描述 output description
第1行,乙個數,代表愛的國度裡有多少愛心天使。
第2行,如果某個愛心天使被其他所有人和愛心天使所愛則請輸出這個愛心天使是由哪些人構成的(從小到大排序),否則輸出-1。
樣例輸入 sample input
樣例輸入1:
6 71 2
2 33 2
4 24 5
5 66 4
樣例輸入2:
3 31 2
2 12 3
樣例輸出 sample output
樣例輸出1:
22 3
樣例輸出2:1-1
資料範圍及提示 data size & hint
各個測試點1s
愛在心中(強連通分量)/*tarjan 求環縮點
第一問即環中點的個數大於1的環的個數
第二問縮點後記錄環的出度 統計出度為1且點的個數大於1的環的個數
若個數等於1,把出度為1的環中的點從小到大輸出即可
若不等於1,則沒有符合題意的
*/#include
#include
#include
#include
#define maxn 10010
#define maxx 1010
using
namespace
std;
intn,m,topt,num,first[maxn],dfn[maxn],low[maxn],f[maxn],s[maxn],top,belong[maxn],du[maxn];
struct
edge
e[maxn*2
];struct
dian
p[maxx];
void add(int x,int
y)void tarjan(int
x)
else
if(f[e[i].to])
low[x]=min(low[x],dfn[e[i].to]);
}if(dfn[x]==low[x])
p[num].l++;
p[num].a[p[num].l]=s[top];
belong[s[top]]=num;
f[s[top]]=0
; top--;
}}int
main()
for(i=1;i<=n;i++)
if(!dfn[i])
tarjan(i);
int ans=0
;
for(i=1;i<=num;i++)
if(p[i].l>1
) ans++;
printf(
"%d\n
",ans);
for(i=1;i<=n;i++)
}int sum=0
;
for(i=1;i<=num;i++)
}if(sum!=1
)
intb[maxx];
for(i=1;i<=p[k].l;i++)
b[i]=p[k].a[i];
sort(b+1,b+p[k].l+1
);
for(i=1;i<=p[k].l;i++)
printf(
"%d
",b[i]);
return0;
}
codevs 2822 愛在心中
題目描述 每個人都擁有乙個夢,即使彼此不相同,能夠與你分享,無論失敗成功都會感動。愛因為在心中,平凡而不平庸,世界就像迷宮,卻又讓我們此刻相逢our home。在愛的國度裡有n個人,在他們的心中都有著乙個愛的名單,上面記載著他所愛的人 不會出現自愛的情況 愛是具有傳遞性的,即如果a愛b,b愛c,則a...
Codevs 2822 愛在心中
2822 愛在心中 時間限制 1 s 空間限制 128000 kb 傳送門題目等級 鑽石 diamond 題目描述 description 每個人都擁有乙個夢,即使彼此不相同,能夠與你分享,無論失敗成功都會感動。愛因為在心中,平凡而不平庸,世界就像迷宮,卻又讓我們此刻相逢our home。在愛的國度...
codevs2822 愛在心中
題目描述 description 每個人都擁有乙個夢,即使彼此不相同,能夠與你分享,無論失敗成功都會感動。愛因為在心中,平凡而不平庸,世界就像迷宮,卻又讓我們此刻相逢our home。在愛的國度裡有n個人,在他們的心中都有著乙個愛的名單,上面記載著他所愛的人 不會出現自愛的情況 愛是具有傳遞性的,即...