這題的話我們讀入可以用cin這樣避免混合輸入時的錯誤,雖然慢一點點,但是我們也可以關閉和stdio 的同步,這樣就不慢了。
對於主函式來說,查詢的時候,如果兩個名字都不存在,那麼find(0)==find(0),那就會輸出yes,所以對於有任意乙個為0的情況,我們就輸出no。
我們也可以先編號後操作,兩種寫法都行。
#include
#include
#include
using namespace std;
mapint> mp;
const
int maxn =
200005
;int pre[maxn]
;int
find
(int x)
void
unions
(int a,
int b)
intmain()
elseif(
find
(mp[a])==
find
(mp[b]))
cout <<
"yes"
<< endl;
else
cout <<
"no"
<< endl;}}
return0;
}
hihocoder 1066 無間道之並查集
經典的並查集演算法 輸入 每個測試點 輸入檔案 有且僅有一組測試資料。每組測試資料的第1行為乙個整數n,表示黑叔叔總共進行的操作次數。每組測試資料的第2 n 1行,每行分別描述黑叔叔的一次操作,其中第i 1行為乙個整數op i和兩個由大小寫字母組成的字串name1 i,name2 i,其中op i只...
1066約瑟夫問題
時間限制 10 sec 記憶體限制 128 mb 提交 1 解決 1 提交 狀態 討論版 約瑟夫問題 有 只猴子,按順時針方向圍成一圈選大王 編號從 到 從第 號開始報數,一直數到 數到 的猴子退出圈外,剩下的猴子再接著從1 開始報數。就這樣,直到圈內只剩下乙隻猴子時,這個猴子就是猴王,程式設計求輸...
hdu 1066 數學相關
詳細說明 include include include using namespace std char s 1005 int len,mp 25 直接計算出其迴圈節為20這裡將0 19的列表於上,當n 5時直接輸出,其餘需要遞迴n 5因為這個表是刪除了所有的5的倍數的 int slove ret...