牛客网——找出直系亲属
题目描述
输入描述:
输入包含多组测试用例,每组用例首先包含2个整数n(0<=n<=26)和m(0<m<50), 分别表示有n个亲属关系和m个问题, 然后接下来是n行的形式如ABC的字符串,表示A的父母亲分别是B和C,如果A的父母亲信息不全,则用-代替,例如A-C,再然后是m行形式如FA的字符串,表示询问F和A的关系。
输出描述:
如果询问的2个人是直系亲属,请按题目描述输出2者的关系,如果没有直系关系,请输出-。具体含义和输出格式参见样例.
链接:https://www.nowcoder.com/questionTerminal/2c958d09d29f46798696f15ae7c9703b 来源:牛客网#include <stdio.h> #include <map> #define N 26 using namespace std;struct Node{//二叉树节点int p1;//第一个双亲的下标,-1表示不存在int p2;//第二个双亲的下标,-1表示不存在 }tree[N];//顺序存储,下标就是它所代表的字符编号,比如0代表'A'int preOrder(int from, int to, int depth) {//从from出发先序遍历到找到to为止,并返回to相对于from的深度if(from==to) return depth;if(tree[from].p1!=-1){int ret=preOrder(tree[from].p1, to, depth+1);if(ret!=-1) return ret;}if(tree[from].p2!=-1){int ret=preOrder(tree[from].p2, to, depth+1);if(ret!=-1) return ret;}return -1; }int main() {int n, m;while(scanf("%d %d", &n, &m)!=EOF){for(int i=0; i<N; i++){tree[i].p1=tree[i].p2=-1;}while(n--)//构建树 {char str[4];scanf("%s", str);if(str[1]!='-') tree[str[0]-'A'].p1=str[1]-'A';if(str[2]!='-') tree[str[0]-'A'].p2=str[2]-'A';}while(m--)//查询 {char str[3];scanf("%s", str);int from=str[0]-'A';int to=str[1]-'A';int ans1=preOrder(from, to, 0);if(ans1==1) printf("child\n");else if(ans1>=2){for(int i=ans1; i>2; i--) printf("great-");printf("grandchild\n");}else//看来不是晚辈,那就是长辈了 {int ans2=preOrder(to, from, 0);if(ans2==1) printf("parent\n");else if(ans2>=2){for(int i=ans2; i>2; i--) printf("great-");printf("grandparent\n");}else printf("-\n");//也不是长辈,那就不是直系亲属 }}}return 0;//大功告成 }
转载于:https://www.cnblogs.com/JAYPARK/p/10403349.html
牛客网——找出直系亲属相关推荐
- 找工作、备考、面试刷题网站推荐(牛客网、力扣、计蒜客、hihocoder、七月在线)以及acm竞赛oj
不管是找工作笔试面试白板试进大厂,还是研究生参加初试复试,数据结构和算法都是都是重中之重,刷题就很必要,来拿走自己的offer 吧! 一.offer刷题推荐 1.牛客网 链接:牛客网 - 找工作神器| ...
- 牛客网大厂在线笔试输入输出练习python3版
牛客网大厂在线笔试输入输出练习python3版 写在前面 1 解法一: 解法二:(错误解法) 2 解法一 解法二:错误解法 解法三 3 解法一 解法二 4 解法一 解法二 5 解法一 解法二 解法三 ...
- 牛客网 栈的压入、弹出序列
链接:https://www.nowcoder.com/questionTerminal/d77d11405cc7470d82554cb392585106 来源:牛客网 [编程题]栈的压入.弹出序列 ...
- 牛客网matlab怎么输入数据,从牛客上找的面经
转自:牛客网 作者:雲水謡 链接:https://www.nowcoder.com/discuss/262804 来源:牛客网 OPPO-计算机视觉算法(sp) 一面: 大约40分钟吧,主要聊项目,问 ...
- 牛客网 水题 递推找规律
链接: https://www.nowcoder.com/acm/contest/91/E 来源:牛客网 小Y买了很多苹果,但他很贪吃,过了几天一下就吃剩一只了.每一天小Y会数出自己的苹果个数X,如果 ...
- 牛客网 F题 集训队脱单大法:这是一道只能由学姐我自己出数据的水题
链接:https://ac.nowcoder.com/acm/contest/322/F 来源:牛客网 集训队脱单大法:这是一道只能由学姐我自己出数据的水题 时间限制:C/C++ 1秒,其他语言2秒 ...
- 牛客网在线编程----算法入门篇
标题本篇博文主要是记录下自己的在线编程情况,初次练习,有的算法还待改进,大家有需要可以去牛客网上面多练练! 有需戳–>牛客网在线编程 NC65.题目描述 大家都知道斐波那契数列,现在要求输入一个 ...
- 牛客网数据开发题库_练习SQL利器,牛客网SQL实战题库
牛客网SQL实战网址:https://www.nowcoder.com/ta/sql 持续更新--记录自己在牛客网SQL的做题过程 更新进度:61题,2019-4-3,更完了 1.查找最晚入职员工的所 ...
- 牛客网平台常州大学新生寒假训练会试
A-添加逗号 链接:https://www.nowcoder.net/acm/contest/78/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其 ...
- 牛客网《BAT面试算法精品课》学习笔记
目录 牛客网<BAT面试算法精品课>学习笔记 牛客网<BAT面试算法精品课>笔记一:排序 牛客网<BAT面试算法精品课>笔记二:字符串 牛客网<BAT面试算法 ...
最新文章
- .NET 框架兼容性简介
- Jin Ge Jin Qu hao UVA - 12563 (劲歌金曲)01背包,求装入的东西最多(相同多时价值大)
- vue-property-decorator 提供 OO 的风格 Vue Component 方便类型声明
- l2-008 最长对称子串 (25分)_小学数学关于时间认识(时、分、秒)的几点总结
- webstorm两个文件比对_webstorm怎么更改文件名称?或者是重命名
- 【实践】美团外卖广告智能算力的探索与实践
- hbase集群 数据写入_HBase神器 | BDSHBase集群之间数据迁移同步的利器
- C++基础::shared_ptr 编程细节(三)
- Laravel简⃣单⃣的⃣路⃣由⃣
- python 联机_CoderZh首款Python联机对战游戏 - NancyTetris1.0倾情发布(一)
- WINDOWS下SQL2016安装
- scratch 大家来找茬
- PHP读取txt文件自动分成指定行数
- 超清视频制作:视频补帧+超分辨率
- 鱼和熊掌兼得:C++代码在编译时完成白盒测试
- 阿里云的各种产品都是用来干什么的?
- python立体爱心_css绘制各种各样的形状图形
- (3)数仓建设-数据仓库设计方案
- 如何用PS制作一个小泡泡呢?
- 管理学二(学习与沟通的重要性)