描述

H国的国王有很多王子,这些王子各自也都有很多王孙,王孙又各自有很多后代…… 总之,H国王族的族谱形成了一棵以国王为根的树形结构。

根据H国的法律,王族的继承顺位这样规定的:

假设A和B是两位王族

1. 如果其中一位是另一位的直系父亲、祖先,则辈份高的王族继承顺位更高

2. 否则,假设C是A和B的最近公共祖先。显然A和B一定是C的两位不同子嗣的后代。其中C较年长的子嗣的后代的继承顺位更高

按时间顺序给出所有国王后代的出生和死亡记录,请你计算所有还活着的后代的继承顺位。

输入

第一行包含一个整数N和一个只包含大写字母和数字的字符串,分别代表记录的条数和国王的名字。

以下N行每行包含一条记录:

birth name1 name2 代表name1的儿子name2出生

death name 代表name死亡

1 <= N <= 10000

名字长度不超过20,并且没有重名的王族。

输出

按继承顺位从高到低输出每位王族的名字。(不包括国王)

每个名字一行。

样例输入

4 KING
birth KING ALI
birth KING BOB
birth ALI CARRO
death ALI

样例输出

CARRO
BOB

只是需要按照题目给的顺序dfs暴力搜索一遍就好了

代码:

#include <bits/stdc++.h>using namespace std;
const int maxn=11000;
map<string,int>G;
map<int,string>F;
int vi[maxn];
vector<int>Q[maxn];
void dfs(int x)
{//cout<<11<<endl;for(int i=0;i<Q[x].size();i++){//cout<<11<<endl;int v=Q[x][i];if(!vi[v]){cout<<F[v]<<endl;}vi[v]=1;dfs(v);}
}
int main()
{int n;char a[10];int ans=1;string root;cin>>n>>root;G[root]=ans++;F[ans-1]=root;vi[1]=1;string s1,s2;for(int i=1;i<=n;i++){scanf("%s",a);if(a[0]=='b'){cin>>s1>>s2;if(G[s1]==0){G[s1]=ans++;F[ans-1]=root;}if(G[s2]==0){G[s2]=ans++;F[ans-1]=s2;}Q[G[s1]].push_back(G[s2]);}else{string s;cin>>s;vi[G[s]]=1;}}dfs(1);return 0;
}

#1716 : 继承顺位(dfs)相关推荐

  1. [hihocoder] #1716 : 继承顺位(dfs深搜)

    时间限制: 10000ms 单点时限: 1000ms 内存限制: 256MB 描述 H国的国王有很多王子,这些王子各自也都有很多王孙,王孙又各自有很多后代-- 总之,H国王族的族谱形成了一棵以国王为根 ...

  2. hihocoder #1716 : 继承顺位

    描述 H国的国王有很多王子,这些王子各自也都有很多王孙,王孙又各自有很多后代-- 总之,H国王族的族谱形成了一棵以国王为根的树形结构. 根据H国的法律,王族的继承顺位这样规定的: 假设A和B是两位王族 ...

  3. 18年12月蓝桥杯校赛

    前言 昨天下午参加了蓝桥杯校内选拔赛. 不谈别人,只谈自己,我觉得这次校赛的发挥还算正常,大概做出了5/8或4/5吧,剩下几道题没时间看了. 应该提高做题效率了- 第一题 Excel地址 Excel单 ...

  4. OO Unit4 UML

    目录 OO Unit3 UML conclution 总结本单元两次作业的架构设计 总结自己在四个单元中架构设计及OO方法理解的演进 总结自己在四个单元中测试理解与实践的演进 总结自己的课程收获 立足 ...

  5. 经典领导选举算法:Bully 算法

    这是最常用的一种领导选举算法,它使用节点 ID的大小来选举新领导者.在所有活跃的节点中,选取节点 ID 最大或者最小的节点为主节点. 以下采用"ID 越大优先级越高"的逻辑来解释算 ...

  6. 如何评价霍光的一生?

    有些长,两个主角. 一个是霍大人,一个是冤死太子刘据的后人,宣帝刘病己. 这两个人,向我们宗师般的展示了,当你势不如人时,你就要一直忍耐,等待,哪怕最终靠死神帮我们赢下比赛. 这真的不丢人. 有些魔鬼 ...

  7. 无忧技术带您预览DFS(分布式文件系统)管理控制台

    相关图文文章请查看http://www.itpro8.com/weiruanjishu/Windows2003/2010/0107/131.html DFS(分布式文件系统)的管理控制台是一个图形界面 ...

  8. 【dfs】【拓扑排序】组合树

    组合树 题目大意: 有一棵树,每个点都有自己的原颜色和目标颜色(黑或白),现在深度不小于k的点可以让自己祖宗k代k个点的颜色全部取反,现在问当前树是否能变成目标树 输入样例 2 3 2 1 2 2 3 ...

  9. 第一单元总结:基于基础语言、继承和接口的简单OOP

    前情提要 到目前为止,OO课程已经完成了前三次的作业,分别为: 第一次作业:简单多项式的构造和求导.[正则表达式][数据结构][排序] 第二次作业:含三角函数因子的复杂多项式的构造.求导和化简.[递归 ...

最新文章

  1. 小程序弹窗并移动放大图片的动画效果
  2. linux 目录说明
  3. 禁用Chrome缓存进行网站开发
  4. 6.成本会计理论的U9系统实现(下)
  5. 412. Fizz Buzz
  6. [html] 写一个左中右的满屏布局,左右固定220px,中间自适应并且要优先加载
  7. sql server select和set赋值的区别
  8. 2012年中国系统架构师大会 即将开幕
  9. 如何用 Nginx 禁止国外 IP 访问网站 ?
  10. VBA 代码如何跟随Excel保存
  11. java怎么实现简体繁体切换_java代码实现简体繁体转换
  12. 企业的病毒,要及时清理
  13. 用 JAVA 实现微信第三方登录
  14. canvas图片转素描
  15. omap gpio irq
  16. 用python让excel飞起来(第7章 图表操作)
  17. php环境扩展安装流程
  18. unity【KeyCode 键码】查询表
  19. 应对项目严重滞后4大有效补救方法
  20. 20172323 2017-2018-2 《程序设计与数据结构》第九周学习总结

热门文章

  1. 玩许多计算机游戏的英语,玩游戏的危害英语作文
  2. C语言-代码实现十进制转二进制输出
  3. medcalc app android,医学计算APP
  4. Acsl竞赛要考哪种计算机语言,美国计算机奥赛(ACSL)开始纳新
  5. 第十三篇 人生中的第一桶金
  6. 芯片破壁者(十九):显卡的战国与帝国
  7. luogu P1646 happiness
  8. Java单元测试使用mock【转载】
  9. mysql树状数据结构_树状结构的数据表如何设计?
  10. 数据分析思维(下—4)