Hiho 無間道之並查集

2022-09-07 17:27:13 字數 1671 閱讀 8937

題目:

時間限制:20000ms

單點時限:1000ms

記憶體限制:256mb

描述這天天氣晴朗、陽光明媚、鳥語花香,空氣中瀰漫著春天的氣息……額,說遠了,總之,小hi和小ho決定趁著這朗朗春光出去玩。

但是剛剛離開居住的賓館不久,抄近道不小心走入了一條偏僻小道的小hi和小ho就發現自己的前方走來了幾個彪形大漢,定睛一看還都是地地道道的黑人兄弟!小hi和小ho這下就慌了神,撿肥皂事小,這一身百把來斤別一不小心葬身他鄉可就沒處說去了。

就在兩人正舉足無措之時,為首的黑叔叔從懷裡掏出了一件東西——兩張花花綠綠的紙,分別遞給了小hi和小ho。

小hi和小ho接過來,只見上面寫道(譯為中文):「本地最大的幫派——青龍幫,誠邀您的加入!」下面還詳細的列出了加入青龍幫的種種好處。

於是兩人略感心安,在同黑叔叔們交談一番之後,已是均感相見恨晚。同時,在小hi和小ho表示自己不日便將回國之後,黑叔叔們也沒有再提加入幫派之事,但是那為首的黑叔叔思索一會,開口道(譯為中文):「我現在有乙個難題,思索了很久也沒法子解決,既然你們倆都是高材生,不如來幫我看看。」

小hi和小ho點了點頭表示沒問題,於是黑叔叔繼續說道:「這個問題是這樣的,我們幫派最近混進了許多警察的臥底,但是在我們的調查過程中只能夠知道諸如『某人和另乙個人是同陣營的』這樣的資訊,雖然沒有辦法知道他們具體是哪個陣營的,但是這樣的資訊也是很重要的,因為我們經常會想要知道某兩個人究竟是不是同一陣營的。」

小hi和小ho贊同的點了點頭,畢竟無間道也都是他們看過的。

黑叔叔接著說道:「於是現在問題就來了,我希望你們能寫出這樣乙個程式,我會有兩種操作,一種是告訴它哪兩個人是同一陣營的,而另一種是詢問某兩個人是不是同一陣營的……既然你們就要回國了,不如現在就去我們幫派的總部寫好這個程式再走把。」

為了生命安全與……小hi和小ho都不得不解決這個問題!那麼他們究竟從何下手呢?

輸入每個測試點(輸入檔案)有且僅有一組測試資料。

每組測試資料的第1行為乙個整數n,表示黑叔叔總共進行的操作次數。

每組測試資料的第2~n+1行,每行分別描述黑叔叔的一次操作,其中第i+1行為乙個整數op_i和兩個由大小寫字母組成的字串name1_i, name2_i,其中op_i只可能為0或1,當op_i=0時,表示黑叔叔判定name1_i和name2_i是同一陣營的,當op_i=1時,表示黑叔叔希望知道name1_i和name2_i是否為同一陣營的。

對於100%的資料,滿足n<=10^5, 且資料中所有涉及的人物中不存在兩個名字相同的人(即姓名唯一的確定了乙個人),對於所有的i,滿足name1_i和name2_i是不同的兩個人。

輸出對於每組測試資料,對於黑叔叔每次op_i=1的操作,輸出一行,表示查詢的結果:如果根據已知資訊(即這次操作之前的所有op_i=0的操作),可以判定詢問中的兩個人是同一陣營的,則輸出yes,否則輸出no。

樣例輸入

10

0 steven d**id

0 lcch dzx

1 lcch dzx

1 d**id dzx

0 lcch d**id

0 frank dzx

1 steven dzx

1 frank d**id

0 steven dzx

0 dzx frank

樣例輸出

yes

noyes

yes

hihocoder 1066 無間道之並查集

經典的並查集演算法 輸入 每個測試點 輸入檔案 有且僅有一組測試資料。每組測試資料的第1行為乙個整數n,表示黑叔叔總共進行的操作次數。每組測試資料的第2 n 1行,每行分別描述黑叔叔的一次操作,其中第i 1行為乙個整數op i和兩個由大小寫字母組成的字串name1 i,name2 i,其中op i只...

hihoCoder 1066 無間道之並查集

這題的話我們讀入可以用cin這樣避免混合輸入時的錯誤,雖然慢一點點,但是我們也可以關閉和stdio 的同步,這樣就不慢了。對於主函式來說,查詢的時候,如果兩個名字都不存在,那麼find 0 find 0 那就會輸出yes,所以對於有任意乙個為0的情況,我們就輸出no。我們也可以先編號後操作,兩種寫法...

hiho1291 逆序思維,並查集

題意 在 我的世界 遊戲中放置沙盒,沙盒為體積為1的正方體,按順序給你一些座標,然後問你按上面的順序在這些座標上放置沙盒是否合法 判斷合法的條件a 沙盒必須放置在地面上或者與另外的沙盒共面 只要共面就可以 b 必須從外部放入某個座標,也就說要放置的座標不能被沙盒包圍,也不能從地面下放進去ps 題中說...