現代的人對於本家族血統越來越感興趣。
給出充足的父子關係,請你編寫程式找到某個人的最早的祖先。
輸入由多行組成,首先是一系列有關父子關係的描述,其中每一組父子關係中父親只有一行,兒子可能有若干行,用#name的形式描寫一組父子關係中的父親的名字,用+name的形式描寫一組父子關係中的兒子的名字;接下來用?name的形式表示要求該人的最早的祖先;最後用單獨的乙個$表示檔案結束。
按照輸入檔案的要求順序,求出每乙個要找祖先的人的祖先,格式:本人的名字+乙個空格+祖先的名字+回車。
輸入樣例#1
#george
+rodney
#arthur
+gareth
+walter
#gareth
+edward
?edward
?walter
?rodney
?arthur
$
輸出樣例#1edward arthur
walter arthur
rodney george
arthur arthur
規定每個人的名字都有且只有6個字元,而且首字母大寫,且沒有任意兩個人的名字相同。最多可能有1000組父子關係,總人數最多可能達到50000人,家譜中的記載不超過30代。
按一般並查集的演算法做
只不過用到了map
mapma
p解析 p> p> 庫#include
#include
#include
#include
#include
#include
using
namespace std;
mapgenealogy;
string si,st;
char s;
string find
(string ss)
intmain()
else
if(s==
'+')
else
if(s==
'?')
cin>>s;
}return0;
}
家譜(並查集)
problem description 現代的人對於本家族血統越來越感興趣,現在給出充足的父子關係,請你編寫程式找到某個人的最早的祖先。input 輸入有多組資料,每組資料由多行組成,首先是一系列有關父子關係的描述,其中每一組父子關係由二行組成,用 name的形式描寫一組父子關係中的父親的名字,用 ...
家譜 並查集
description 現代的人對於本家族血統越來越感興趣,現在給出充足的父子關係,請你編寫程式找到 某個人的最早的祖先。input 輸入檔案由多行組成,首先是一系列有關父子關係的描述,其中每一組父子關係由二行 組成,用 name 的形式描寫一組父子關係中的父親的名字,用 name 的形式描寫一組父...
並查集 家譜
現代的人對於本家族血統越來越感興趣,現在給出充足的父子關係,請你編寫程式找到 某個人的最早的祖先。輸入檔案由多行組成,首先是一系列有關父子關係的描述,其中每一組父子關係由二行 組成,用 name 的形式描寫一組父子關係中的父親的名字,用 name 的形式描寫一組父子關 系中的兒子的名字 接下來用?n...