傳送門
這題用hash和並查集也可以解,但hash實在太麻煩,會把人寫死,由於本人最近在練習map,就不管並查集了。
f a[
1]=2
fa[1]=2
fa[1]=
2 意思是 1
11 的父親是 222.
f a[
「rod
ney」
]=ge
orge
fa[「rodney 」]=george
fa[「ro
dney
」]=g
eorg
e 同理
對於最後查詢而言,假設查詢s
ss的祖先,
s tr
in
gstring
string
s s=
sss=s
ss=s
,如果ss出現在father陣列中,ss=
fa[s
]ss=fa[s]
ss=fa[
s];如果沒有出現,那麼說明ssss
ss的父親就是他自己,也就是s
ss的祖先。
#include
using
namespace std;
intmain()
if(c==
'?')
}return0;
}
家譜 並查集 map
題目描述 給出充足的父子關係,請你編寫程式找到某個人的最早的祖先。輸入格式 輸入由多行組成,首先是一系列有關父子關係的描述,其中每一組父子關係中父親只有一行,兒子可能有若干行,用 name 的形式描寫一組父子關係中的父親的名字,用 name 的形式描寫一組父子關係中的兒子的名字 接下來用 name ...
家譜 map容器與並查集
本題思路參考自洛谷博主zhm iancai。建立map容器 mapp 其模板為 mapvarname 此處建立的是字串對應字串的詞典。查詢操作 string findf string x while cin tmp else if tmp else 1 建立父親 if tmp 如果s1位置上沒有鍵值...
map 效率問題
當關乎效率時應該在map operator和map insert之間仔細選擇 class widget public widget widget double weight widget operator double weight mapm m 1 1.50 表示式m 1 是m.operator ...