很有意思的一道題目,因為是兩個人是同輩的,所以我們只需要向上找五代以內的直系親戚即可。對於u,v這兩個人的判斷,先找出u的所有親戚,放到乙個set裡面,再找v的親戚用set判斷就行了。
不過這裡要注意下面的詢問裡面不僅僅是n以內的人,還有可以能是列表中出現的所有人,所以對於每個點的父,母也要建立節點儲存。
**如下:
#include
using
namespace
std;
const
int max = 100010;
typedef pair p;
struct node;
node myself[max];
bool used[max];
int n;
vector
all;
void bfs(int b)
if(m != -1 && !used[m])
}}int solve(int u,int v)
all.clear();
bfs(v);
for(vector
::iterator it = all.begin();it != all.end();++it)
return1;}
int main(void)
int k,u,v;
vector
res;
cin >> k;
for(int i=1;i<=k;++i)
for(vector
::iterator it = res.begin();it != res.end();++it)
return0;}
node::node()
node::node(int _f,int _m,char _s)
L2 016 願天下有情人都是失散多年的兄妹
呵呵。大家都知道五服以內不得通婚,即兩個人最近的共同祖先如果在五代以內 即本人 父母 祖父母 曾祖父母 高祖父母 則不可通婚。本題就請你幫助一對有情人判斷一下,他們究竟是否可以成婚?輸入第一行給出乙個正整數n 2 n 104 隨後n行,每行按以下格式給出乙個人的資訊 本人id 性別 父親id 母親i...
L2 016 願天下有情人都是失散多年的兄妹
時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 呵呵。大家都知道五服以內不得通婚,即兩個人最近的共同祖先如果在五代以內 即本人 父母 祖父母 曾祖父母 高祖父母 則不可通婚。本題就請你幫助一對有情人判斷一下,他們究竟是否可以成婚?...
L2 016 願天下有情人都是失散多年的兄妹
時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 呵呵。大家都知道五服以內不得通婚,即兩個人最近的共同祖先如果在五代以內 即本人 父母 祖父母 曾祖父母 高祖父母 則不可通婚。本題就請你幫助一對有情人判斷一下,他們究竟是否可以成婚?...