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

2021-07-28 15:52:45 字數 2127 閱讀 2544

呵呵。大家都知道五服以內不得通婚,即兩個人最近的共同祖先如果在五代以內(即本人、父母、祖父母、曾祖父母、高祖父母)則不可通婚。本題就請你幫助一對有情人判斷一下,他們究竟是否可以成婚?

輸入第一行給出乙個正整數n(2 <= n <= 104),隨後n行,每行按以下格式給出乙個人的資訊:

本人id 性別 父親id 母親id

其中id是5位數字,每人不同;性別m代表男性、f代表女性。如果某人的父親或母親已經不可考,則相應的id位置上標記為-1。

接下來給出乙個正整數k,隨後k行,每行給出一對有情人的id,其間以空格分隔。

注意:題目保證兩個人是同輩,每人只有乙個性別,並且血緣關係網中沒有**或隔輩成婚的情況。

對每一對有情人,判斷他們的關係是否可以通婚:如果兩人是同性,輸出「never mind」;如果是異性並且關係出了五服,輸出「yes」;如果異性關係未出五服,輸出「no」。

24 00001 m 01111 -1

00002 f 02222 03333

00003 m 02222 03333

00004 f 04444 03333

00005 m 04444 05555

00006 f 04444 05555

00007 f 06666 07777

00008 m 06666 07777

00009 m 00001 00002

00010 m 00003 00006

00011 f 00005 00007

00012 f 00008 08888

00013 f 00009 00011

00014 m 00010 09999

00015 m 00010 09999

00016 m 10000 00012

00017 f -1 00012

00018 f 11000 00013

00019 f 11100 00018

00020 f 00015 11110

00021 m 11100 00020

00022 m 00016 -1

00023 m 10012 00017

00024 m 00022 10013

9 00021 00024

00019 00024

00011 00012

00022 00018

00001 00004

00013 00016

00017 00015

00019 00021

00010 00011

never mind

yes

never mind

no yes

no yes

no no

用倆個佇列交替遍歷同一輩的人。

用set的size變化來判斷是否有重複的祖先。

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

class node

};node a[100001];

bool isv[100001];

int n;

int main()

if (mid != -1)

}int m;

cin >> m;

int x, y;

for (int i = 0; i < m; i++) else

que.pop();

if (a[t].father != -1)

if (a[t].mom != -1)

}

} else

que2.pop();

if (a[t].father != -1)

if (a[t].mom != -1)

}

}if (isno)

}if (isno) else }}

return

0;}

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

時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 呵呵。大家都知道五服以內不得通婚,即兩個人最近的共同祖先如果在五代以內 即本人 父母 祖父母 曾祖父母 高祖父母 則不可通婚。本題就請你幫助一對有情人判斷一下,他們究竟是否可以成婚?...

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

時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 呵呵。大家都知道五服以內不得通婚,即兩個人最近的共同祖先如果在五代以內 即本人 父母 祖父母 曾祖父母 高祖父母 則不可通婚。本題就請你幫助一對有情人判斷一下,他們究竟是否可以成婚?...

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

時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者陳越 呵呵。大家都知道五服以內不得通婚,即兩個人最近的共同祖先如果在五代以內 即本人 父母 祖父母 曾祖父母 高祖父母 則不可通婚。本題就請你幫助一對有情人判斷一下,他們究竟是否可以成婚?輸...