愿天下有情人都是失散多年的兄妹

呵呵。大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人、父母、祖父母、曾祖父母、高祖父母)则不可通婚。本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚?

输入格式:

输入第一行给出一个正整数N(2 ≤ N ≤),随后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

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5+5;
vector<int> vec[maxn];
bool vis[maxn];
char sex[maxn];
bool flag;
void dfs(int x,int num){
    if(num>=4) return;
    for(int i=0;i<vec[x].size();i++){
        if(!vis[vec[x][i]]){
            vis[vec[x][i]]=1;//标记出现的人
            dfs(vec[x][i],num+1);
        }
        else flag=1;
    }
}
int T;
int main(){
    freopen("in","r",stdin);
    cin>>T;
    while(T--){
        int t,fa,ma;
        scanf("%d ",&t);
        sex[t]=getchar();
        scanf(" %d %d",&fa,&ma);
        if(fa!=-1){
            vec[t].push_back(fa);
            sex[fa]=‘M‘;
        }
        if(ma!=-1){
            vec[t].push_back(ma);
            sex[ma]=‘F‘;
        }
    }
    cin>>T;
    while(T--){
        int x,y;
        scanf("%d %d",&x,&y);
        if(sex[x]==sex[y]) cout<<"Never Mind"<<endl;
        else{
            memset(vis,0,sizeof(vis));
            vis[x]=1;vis[y]=1;
            flag=0;
            dfs(x,0);dfs(y,0);
            if(flag) cout<<"No"<<endl;
            else cout<<"Yes"<<endl;
        }
    }
    return 0;
}

原文地址:https://www.cnblogs.com/xcfxcf/p/12338256.html

时间: 2024-11-08 13:38:13

愿天下有情人都是失散多年的兄妹的相关文章

【PTA-天梯赛训练】愿天下有情人都是失散多年的兄妹

呵呵.大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人.父母.祖父母.曾祖父母.高祖父母)则不可通婚.本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚? 输入格式: 输入第一行给出一个正整数N(2 ≤ N ≤),随后N行,每行按以下格式给出一个人的信息: 本人ID 性别 父亲ID 母亲ID 其中ID是5位数字,每人不同:性别M代表男性.F代表女性.如果某人的父亲或母亲已经不可考,则相应的ID位置上标记为-1. 接下来给出一个正整数K,随后K行,每行给出一对有情人的I

为什么QQ能帮你找到失散多年的兄弟?----图论

编程三分钟的第 44 篇原创文章 为什么qq里"可能认识的人"功能推荐的如此精准? 为什么两个没有什么联系的朋友会相互认识? 一切的背后到底是道德的沦丧,还是人性的扭曲 ? 让我们走进图的内心世界! 什么是图? 微信好友之间的关系像一张巨大的网络,朋友的朋友可能是自己的朋友,所以用一种叫 图 的数据结构储存起来,元素和元素之间都可能发生关系. 下面要开始干货了!非战斗成员请撤离,图有两种有向图和无向图,唯一的区别就是有木有箭头,是不是看起来很像关系网. 来说说它的细节 图上的东西全都有

天梯训练赛

暴力模拟大法好 正整数A+B 好好的题目坑这么多.... 看上去挺麻烦的 但只要注意第一个空格 左边为a 右边为b 所有的操作都围绕空格 #include<bits/stdc++.h> using namespace std; int main() { string s; getline(cin, s); int len = (int) s.length(), now = 1; int a = 0, b = 0; int fa = 1, fb = 1, pos; for (int i = 0;

hdu--1075--字典树||map

做这题的时候 我完全没想到 字典树 就直接用map来做了 =-= 我是有 多不 敏感啊~~ 然后去 discuss 一看 很多都是说 字典树的问题.... 字典树 给我感觉 它的各个操作的意思都很清晰明了 直接手写 不那么容易啊.. 晚些 时候 试下来写------用map写是真心方便 只要注意下那么\n的吸收之类的  但是 速度上是的确慢了许多 基本要卡1000ms 虽然这题是给了5000ms 怎么给那么大的时间 touch   me 1 #include <iostream> 2 #inc

千古绝唱——陆游和唐琬

千古绝唱--陆游和唐琬 在浙江的绍兴,有一座沈园.南宋时期那里叫做山阴.传说从前沈园的粉壁上曾题着两阙<钗头凤>,据说第一阙是诗词名家陆游所写,第二阙是陆游的前妻唐婉所和.这两阙词虽然出自不同的人之手,却浸润着同样的情怨和无奈,因为它们共同诉说着一个凄婉的爱情故事-唐婉与陆游沈园情梦. 陆游是南宋时期著名的爱国诗人.他出生于越州山阳一个殷实的书香之家,幼年时期,正值金人南侵,常随家人四处逃难.这时,他母舅唐诚一家与陆家交往甚多.唐诚有一女儿,名唤唐婉,字蕙仙,自幼文静灵秀,不善言语却善解人意.

使用Graph工具观察FFT波形

2014年8月1日,经过很长时间的上网查阅资料,走了很多弯路,终于可以成功使用Graph工具仿真波形了,虽然这个的确很简单,但是经过自己摸索出来的,兴奋之情难于言表. 明天就是七夕了,刚和女朋友分手的我,有点小郁闷.不发牢骚了,最后一句,祝天下所有有缘人都是失散多年的兄妹. /***************************我是华丽的分割线君*******************************/ 1.连上仿真器,运行代码,在需要观察的地方打上断点.(这个就不细说了) 2.打开Gr

为什么男生都对初中高中喜欢却未得到的女孩有种超乎寻常的执念?

趣儿言:”喜欢过的,会一直矗立在记忆深处,想抹也抹不掉.” 1 初中的她. 第一次表白无果.因为都太年轻,大家都没往爱情上想.现在看来,我当初的表白无非只是想告诉她,我喜欢她.只是喜欢而已,并没有执着一定要在一起.后来嘛这段感觉就一直深埋在心中. 中考后她去了别的中学,期间一直都是断断续续的联系.直到大一,是的,五年后的大一,她告诉我,她和男朋友分手了.她伤心欲绝,甚至割过腕,幸好她的舍友刚巧碰见才没发展得更严重.在我电话安慰她的期间,我心中深埋的那份情感突然又破土而出.“其实我一直很喜欢你,不

世间情爱之愿为彼此付出至死-看了你会哭的,好刺痛人心

这是一个真实的爱情故事: 从前在中国有一个贫穷的农家男孩和一个有钱家庭的女孩堕入爱河.一段不被祝福的爱 ... 便开始了 ... 这件事终于被女孩的爸爸发现和反对,并希望他们的爱情就此结束. 有一天,男孩得知女孩患了绝症 ... 但他却不能去见她最后一面 ... 一个星期天早上,男孩终于忍不住,走去请求女孩的爸爸,希望能见女孩一面,对男孩来说,只要能远远地看一眼便足够!但女孩的爸爸坚决不拒绝了男孩的请求 ... 女孩的妈妈被男孩的真诚所感动,愿意偷偷地替男孩偷运一封信给患病的女孩.不过男孩知道如

辛巴学院-阅微堂-剑英陪你零基础学c#系列(一)Hello World

辛巴学院:一个不花钱的攻城狮地下网络学院.辛巴学院:愿天下所有的攻城狮,都找到失散多年的荣耀石. 剑英陪你系列又来啦.剑英是一个有大爱的人,热爱每一个程序员,尤其是年轻漂亮的女程序.最近组织朋友们玩了一次即兴团体诗创作,无论怎么开头,都会走上厕所文化的道路.尤其是卫生纸的出镜率极高.这让我对这个群体的心理健康有了深深的担忧,任重而道远啊.让我们一起响应暴走九月不撸,不撸不撸,九月我不撸. 你可能已经看过了无数的Helloworld,是什么感觉呢?兴奋,失望,满足?还是已经想不起来什么感觉了?我已