程式設計開發gang團夥問題求解。
在某城市裡住著n個人,任何兩個認識的人不是朋友就是敵人,而且滿足: 1、 我朋友的朋友是我的朋友; 2、 我敵人的敵人是我的朋友; 所有是朋友的人組成乙個團夥。告訴你關於這n個人的m條資訊,即某兩個人是朋友,或者某兩個人是敵人,請你編寫乙個程式,計算出這個城市最多可能有多少個團夥?
input
第1行為n和m,n小於1000,m小於5000; 以下m行,每行為p x y,p的值為0或1,p為0時,表示x和y是朋友,p為1時,表示x和y是敵人。
output
乙個整數,表示這n個人最多可能有幾個團夥。
sample input
e 1 4
f 3 5
f 4 6
e 1 2
sample output
hint
,,題解
巧妙利用並查集合並。
如果a與b是朋友則直接合併a,b
否則a與b』合併b與a』合併,因為這樣剛好可以滿足敵人的敵人是朋友。
**#include
#include
#include
#include
#include
typedef long long ll;
using namespace std;
inline int read()
int n,m,ans,f[2005],a[1005];
bool mark[2005];
int find(int i)
int main()
for (int i=1;i<=n;i++)a[i]=find(i),mark[a[i]]=1;
for (int i=1;i<=2*n;i++) if (mark[i]) ans++;
printf("%d",ans);
return 0;
}
程式設計開發求解吊燈問題
description alice家裡有一盞很大的吊燈。所謂吊燈,就是由很多個燈泡組成。只有乙個燈泡是掛在天花板上的,剩下的燈泡都是掛在其他的燈泡上的。也就是說,整個吊燈實際上類似於一棵樹。其中編號為1的燈泡是掛在天花板上的,剩下的燈泡都是掛在編號小於自己的燈泡上的。現在,alice想要辦一場派對,...
問題求解與程式設計
問題提出時,想要利用計算機進行求解,而一般計算機不會分析問題並直接給出解決問題的方案,故我們個人需要分析問題並給出問題的解決方案,再將其描述成計算機能識別的指令 程式 讓計算機進行複雜處理,最終得到問題結果,在這一過程中,計算機確起著非常重要的作用,但是要是沒有前面的一系列步驟,也不能解決問題 程式...
本人初學程式設計,遇到問題,求解答
上位機程式設計 從網上直接找的串列埠程式 void c串列埠v2dlg oncommmscomm1 long k variant inputdata m mscom.get input colesafearray fs fs inputdata for k 0 k 編譯總是出現錯誤 warning ...