牛客小白月賽24 H 人人都是好朋友

2021-10-05 05:27:56 字數 1602 閱讀 9550

題目鏈結

牛可樂作為三軍統帥,是要時時刻刻關照著下屬的。

現在牛可樂想要知道自己的手下之間的友好關係,所以他收集了 n 張紙條,上面寫著三個整數 ai,

bi,c

ia_i,b_i,c_i

ai​,bi

​,ci

​ ,表示如果 c

ic_i

ci​ 為 1,表示手下 a

ia_i

ai​ 和手下 b

ib_i

bi​ 是朋友,反之則是敵人。

牛可樂想要知道這些資訊有沒有互相矛盾的地方,可是這個問題太難了,只好來問你了

如果 a 與 b 友好,b 又與 c 友好,那麼 a 與 c 也是友好的。

如果兩個人既是友好的又是不友好的則視為相互矛盾的。

牛可樂的手下有 1e9 個。

輸入第一行給出乙個正整數 t

tt,表示測試案例的數量。

對於每個測試用例.第一行給出乙個正整數 n

nn,表示有 n

nn 個友好關係

接下來每 n

nn 行給出三個正整數 ai,

bi,c

ia_i,b_i,c_i

ai​,bi

​,ci

​,表示手下 a

ia_i

ai​ 和手下 b

ib_i

bi​ 之間的友好關係.

每組案例輸出一行,若這些關係沒有矛盾,輸出 "yes」,否則輸出 「no」

2

31 2 1

1 3 1

2 3 1

31 2 1

1 3 1

2 3 0

yes

no

這題一看就是並查集了,很多人會想,並查集開不了那麼大的陣列啊,那我們可以用 map

mapma

p 鴨?,這題其實是 icpc 網路賽的一道題目改過來的,用 map

mapma

p 還是不行,會 tle

tletl

e,改用 uno

rder

ed_m

ap

unordered\_map

unorde

red_

map 就能過了,ac**如下:

#include

using

namespace std;

typedef

long

long ll;

int n,m;

unordered_map<

int,

int>father;

intfindfather

(int v)

}void

union

(int v,

int u)

intmain()

else}if

(flag==0)

puts

("no");

else

puts

("yes");

father.

clear()

;}return0;

}

牛客小白月賽24 H 人人都是好朋友

時間限制 c c 2秒,其他語言4秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 題目描述 牛可樂作為三軍統帥,是要時時刻刻關照著下屬的。現在牛可樂想要知道自己的手下之間的友好關係,所以他收集了 nn 張紙條,上面寫著三個整數 ai,bi,ci,...

牛客小白月賽24 題解

牛客小白月賽24 題解 最後還剩一道計算幾何,其實可以ak,但沒必要 b 簽到 include using namespace std const int n 2e5 10 int a n int main printf d n ans return 0 c 還行 includeusing name...

牛客的小白月賽24補題

沒注意負數取模 呀呀呀呀,打腦殼 保證取模後的結果為正數 x mod mod mod 思路1.挨個嘗試肯定超時 2.就是把平方項展開 a2 b2 2ab 每個平方項的出現次數n 1次 每個2ab形式的和 最後一定注意取余為正數 戳我試試看 include include include includ...