L2 016 願天下有情人都是失散多年的兄妹

2021-08-16 23:44:55 字數 910 閱讀 9469

很有意思的一道題目,因為是兩個人是同輩的,所以我們只需要向上找五代以內的直系親戚即可。對於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 作者 陳越 呵呵。大家都知道五服以內不得通婚,即兩個人最近的共同祖先如果在五代以內 即本人 父母 祖父母 曾祖父母 高祖父母 則不可通婚。本題就請你幫助一對有情人判斷一下,他們究竟是否可以成婚?...