問題簡述:
給出若干組成員,當該組成員中有乙個是嫌疑人時,所有組員均為嫌疑人,預設成員0必為嫌疑人。
問題分析:
當具備某個條件時,將兩者歸為同乙個集合。顯然為並查集問題。
程式說明:
當一者為嫌疑人(父節點為0)時,將雙方的父節點都置為0,最後再遍歷所有成員使用一次find函式,避免有成員的父節點為除0外的嫌疑人,最後再遍歷一遍陣列,得出父節點為0的成員的個數,即為嫌疑人的個數
ac通過的c語言程式如下:
#include#include#include#include#include#include#include#includeusing namespace std;
int root[30005];
void init()
}int find(int x)
else
return root[x]=find(root[x]);
}void unions(int x,int y)
else
else
root[a]=root[b]; }}
int main()
int k,a,b;
for(int i=0;i>k;
cin>>a;
for(int j=1;j>b;
unions(a,b);
}} int sus=0;
for(int i=0;ifor(int i=0;i} cout<}}
第三次訓練賽
include using namespace std typedef long long ll const int maxn 2e5 10 vector int mp maxn int n,m,s maxn int ans 0,mx void dfs int i,int pre,int cnt p...
第三次作業
2 12有600 mb 兆位元組 的資料,需要從南京傳送到北京。一種方法是將資料寫到磁碟上,然後託人乘火車這 些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率為2.4kb s 傳送此資料。試比較這兩種方法的優劣。若資訊傳送速率為33.6kb s,其結果又如何?解 當傳送速率為2.4k...
第三次作業
1 有600mb 兆位元組 的資料,需要從南京傳送到北京 一種方法是將資料寫到磁碟上,然後託人乘火車將這些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率為2.4kb s 傳送此資料,試比較這兩種方法的優劣。若資訊傳送的速率為33.6kb s,其結果又如何?解 假定連續傳送且不出錯。若...