「TYVJ1017」冗余关系
題目描述
Mrs.Chen是一個(gè)很認(rèn)真很稱職的語(yǔ)文老師 … 所以,當(dāng)她看到學(xué)生作文里的人物關(guān)系描述得非常的麻煩的時(shí)候,她非常生氣,于是宣布:凡是作文里有冗余關(guān)系的,一率罰抄出師表10次…同學(xué)們非常的恐懼,于是,每當(dāng)他們寫(xiě)出一篇作文,都要拿來(lái)你這個(gè)語(yǔ)文兼OI天才這里,問(wèn)你有沒(méi)有冗余的關(guān)系 … 時(shí)間一久,你也煩了,于是就想寫(xiě)個(gè)程序來(lái)代勞 … 現(xiàn)在這里有一篇作文,有n句描述人物關(guān)系的句子,描述了n個(gè)人的關(guān)系 每條句子的定義是這樣的 X Y 它的意思是:X認(rèn)識(shí)Y Y也認(rèn)識(shí)X 現(xiàn)在要你求出文中冗余關(guān)系的數(shù)目. 注意: 假如A認(rèn)識(shí)B,B認(rèn)識(shí)C,則A也認(rèn)識(shí)C 冗余關(guān)系的定義是指 : 即使沒(méi)有這條關(guān)系,原圖的所有關(guān)系照樣成立.
輸入
第一行,兩個(gè)整數(shù),表示句子數(shù)量(n),表示人數(shù)(m)。 接下來(lái)n行,每行兩個(gè)數(shù),意義在描述里已經(jīng)說(shuō)了.
輸出
一個(gè)整數(shù),表示冗余關(guān)系的數(shù)目.
樣例輸入
3 3
1 2
1 3
2 3
樣例輸出
1
提示
1< =n,m< =1000
#include <cstdio> int father[40010],ans,n,m; int get_fa(int x){if(x!=father[x])return(get_fa(father[x])); } void join(int x,int y){int t[2];t[0]=get_fa(x);t[1]=get_fa(y);if(t[0]!=t[1]) father[t[0]]=t[1]; } int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) father[i]=i;while(m--){int x,y;scanf("%d%d",&x,&y);join(x,y);}for(int i=1;i<=n;i++)if(father[i]==i) ans++;printf("%d\n",ans);return 0; }總結(jié)
以上是生活随笔為你收集整理的「TYVJ1017」冗余关系的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 8.5.3耳麦拔插事件调用流程分析
- 下一篇: html画星空,html5 canvas