偉大的哲學家小皮認為,友誼是具有傳遞性的:如果a和b存在一定的關係,b和c具有一定的關係,那麼a和c之間也會有一定聯絡。
小皮喜歡研究他人的朋友圈,在他看來不滿足上述關係的朋友圈都是不正常的朋友圈,可是人多起來關係也摸不清,請你來幫忙寫乙個程式檢查該朋友圈是否正常.
假設乙個朋友圈有n個人,m組關係,你需要檢查是否對於任意一對有直接關係的a和b,b和c,都一定滿足a和c有關係,如果a,c不存在直接關係則為不正常的朋友圈。
如果該朋友圈正常輸出yes,否則輸出no。
本題為多測。
### 輸入格式
多組測試資料.
第一行乙個整數t,表示有t個朋友圈
接來下每組測試資料存在乙個n,m . 表示有n個人,m組關係
接來下m行,每行兩個正整數x,y,表示x和y存在直接關係,保證不存在重複的直接關係。
### 輸出格式
包括t行,每一行乙個yes或no。
### 樣例輸入
44 3
1 33 4
1 44 4
3 12 3
3 41 2
10 4
4 35 10
8 91 2
3 21 2
2 3### 樣例輸出
yesno
yesno
#### 資料範圍:$n<=150000,m<=min(150000,\frac)$
## solution
看到連通性,容易想到是並查集,但應該如何判斷是否在乙個聯通塊內每兩個點都聯通呢?
無重邊?顯然只要統計乙個點的度數就行了,若乙個點的度數等於這個點所在的聯通塊的度數+1就行了。本題還是比較水的。
**如下:
```cpp
#include#include#includeusing namespace std;
int read()
int du[201010],fa[200101],x[201010],y[201001],cnt[201010];
int find(int x)
int main()
for(int i=1;i<=n;i++)
for(int i=1;i<=n;i++)
}if(flag) printf("no\n");
else printf("yes\n"); }}
```
小K的疑惑 牛客
bob有 n 1 leq n leq10000 個點的樹,每條邊有乙個邊權 d 0 leq d leq 233 現在定義 dis i,j 代表第 i 個點到第 j 個點的距離模2。問有多少 i,j,k 滿足 dis i,j dis i,k dis j,k 首先,一棵樹中不存在 i,j,k 使得 di...
關於uri的一點小疑惑
簡單的框架 在後台中的controller如此設定 system.out.println hello return hello 頁面hello.html中 this is a test hello view 當執行該專案預設顯示該頁面,http localhost 8080 testspring 此...
C C 在演算法考試中的小技巧
printf 2f n n 表示輸出格式為2位浮點數 a?b c 表示a為真返回b的結果,若為假則返回c的結果 printf 5d 123 使不足m位的int變數以m位進行右對齊輸出輸出效果為 printf 05d 123 輸出效果為 char c getchar 輸入單字元 putchar 輸出單...