description
——你要是願意,我就永遠存在
某人的朋友圈實在是過於龐大且複雜,要判斷兩個人是不是朋友,那還真不容易。
現給出某個朋友圈關係圖,求任意給出的兩個人是否是朋友。
規定:如果x和yy是朋友,y和z是朋友,那麼x和z也是朋友。
如果x和y是朋友,那麼x的朋友都是y的朋友,y的朋友也都是x的朋友。
input
第一行:三個整數n,m,p,(n≤50000,m≤50000,p≤50000),分別表示有n個人,m個朋友關係,詢問p對朋友關係。
以下m行:每行兩個數mi,mj,1≤mi,mj≤n,表示mi和mj具有朋友關係。
接下來p行:每行兩個數pi,pj,詢問pi和pj是否具有朋友關係。
output
p行,每行乙個「yes」或「no」(不包含引號)。表示第i個詢問的答案為「具有」或「不具有」朋友關係。
sample input 1
6 5 31 21 5
3 45 2
1 31 4
2 35 6
sample output 1
yesyesno
裸的並查集,不知道為什麼那麼多人沒過。。。qaq解法:裸的並查集的路徑壓縮或按秩合併
以下是ac**:
#include usingnamespace
std;
const
int mac=5e4+10
;int
father[mac];
int find(int
x)int
main()
}for (int i=1; i<=p; i++)
return0;
}
找朋友並查集裸題
找朋友 並查集用來合併兩個不相交的集合 主要找根,需要路徑優化 合併的時候按秩合併 ac include using namespace std const int maxn 5e4 int parent maxn rank1 maxn int m,n,p struct frda maxn b ma...
並查集判環(裸
題目大意 有一些化合物,每個化合物都由兩種元素組成的 每個元素用乙個大寫字母表示 你是乙個裝箱的工人,從實驗員那裡按照順序依次把一些簡單化合物裝到車上。但這裡存在乙個安全隱患 如果車上存在k個簡單的化合物,正好包含k中元素,那麼它們將組成乙個易爆的混合物。為了安全起見,每當你拿到乙個化合物時,如果它...
並查集 好朋友
天勤書上一道題,很簡潔的展現了並查集的思想。大致意思是x和y是和朋友,xx和yy是好朋友.要你分組使組內都是好朋友,組外都不是好朋友。資料量比較小,很水,路徑壓縮不考慮也沒問題。includeusing namespace std define max 200 int father max bool...