時間限制: 1000 ms 記憶體限制: 65536 kb
提交數: 596 通過數: 247
在某城市裡住著n個人,任何兩個認識的人不是朋友就是敵人,而且滿足:
1、我朋友的朋友是我的朋友;
2、我敵人的敵人是我的朋友;
所有是朋友的人組成乙個團夥。告訴你關於這n個人的m條資訊,即某兩個人是朋友,或者某兩個人是敵人,請你編寫乙個程式,計算出這個城市最多可能有多少個團夥?
第1行為n和m,1以下m行,每行為p x y,p的值為0或1,p為0時,表示x和y是朋友,p為1時,表示x和y是敵人。
乙個整數,表示這n個人最多可能有幾個團夥。
6 41 1 4
0 3 5
0 4 6
1 1 2
3
我們可以把朋友的節點設為一樣,記錄在fa[i]中,遇到敵人時,將敵人的敵人放到fa[i]中,所以需要a[i]記錄敵人。
#includeusing namespace std;
#define n 10100
int fa[n],a[n];
//fa[i]記錄父親節點:朋友,a[i]記錄i的第乙個敵人
int find(int x)
int main()
else
//y同理
if(!a[y])
a[y]=x;
else}}
int tot=0;
for(int i=1;i<=n;i++)
if(fa[i]==i) tot++;
cout
}
並查集 資訊奧賽一本通 家譜 gen
時間限制 1000 ms 記憶體限制 65536 kb 提交數 227 通過數 109 現代的人對於本家族血統越來越感興趣,現在給出充足的父子關係,請你編寫程式找到某個人的最早的祖先。由多行組成,首先是一系列有關父子關係的描述,其中每一組父子關係由二行組成,用 name的形式描寫一組父子關係中的父親...
資訊奧賽一本通 1183病人排隊
1183 病人排隊 題目描述 病人登記看病,編寫乙個程式,將登記的病人按照以下原則排出看病的先後順序 1.老年人 年齡 60歲 比非老年人優先看病。2.老年人按年齡從大到小的順序看病,年齡相同的按登記的先後順序排序。3.非老年人按登記的先後順序看病。輸入 第1行,輸入乙個小於100的正整數,表示病人...
資訊奧賽一本通1185 單詞排序
輸入一行單詞序列,相鄰單詞之間由1個或多個空格間隔,請按照字典序輸出這些單詞,要求重複的單詞只輸出一次。區分大小寫 一行單詞序列,最少1個單詞,最多100個單詞,每個單詞長度不超過50,單詞之間用至少1個空格間隔。資料不含除字母 空格外的其他字元。按字典序輸出這些單詞,重複的單詞只輸出一次。she ...