8 16考試 小皮的疑惑

2022-05-19 19:03:16 字數 1164 閱讀 8272

偉大的哲學家小皮認為,友誼是具有傳遞性的:如果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 輸出單...