家谱 要测试数据的在评论里发联系方式

家谱(gen)

时间限制  2S

【问题描述】

现代的人对于本家族血统越来越感兴趣,现在给出充足的父子关系,请你编写程序找到某个人的最早的祖先。

【输入格式】gen.in

  输入文件由多行组成,首先是一系列有关父子关系的描述,其中每一组父子关系由二行组成,用#name的形式描写一组父子关系中的父亲的名字,用+name的形式描写一组父子关系中的儿子的名字;接下来用?name的形式表示要求该人的最早的祖先;最后用单独的一个$表示文件结束。规定每个人的名字都有且只有6个字符,而且首字母大写,且没有任意两个人的名字相同。最多可能有1000组父子关系,总人数最多可能达到50000人,家谱中的记载不超过30代。

【输出格式】gen.out

  按照输入文件的要求顺序,求出每一个要找祖先的人的祖先,格式:本人的名字+一个空格+祖先的名字+回车。

【输入样例】

#George

+Rodney

#Arthur

+Gareth

+Walter

#Gareth

+Edward

?Edward

?Walter

?Rodney

?Arthur

$

【输出样例】

Edward Arthur

Walter Arthur

Rodney George

Arthur Arthur

思路:核心思想有点类似于并查集

   用map实现比较方便

   题目不难,注意把握好其中的逻辑关系,分类讨论

缺点:在这份代码之下Dev c++的调试功能形同虚设

 1 #include<iostream>
 2 #include<map>
 3 #include<cstdio>
 4 #include<cstring>
 5 using namespace std;
 6 int f[101];
 7 string fanow;//储存当前父亲的名字,以便于添加孩子节点
 8 map<string,string>p;
 9 string name;
10 int main()
11 {
12     char a;
13     while(cin>>a)
14     {
15         if(a==‘$‘)
16         break;
17         if(a==‘#‘)// 父亲名字
18         {
19             cin>>name;
20             if(p[name].empty())
21             p[name]=name;
22             fanow=name;
23         }
24         if(a==‘+‘)// 孩子名字
25         {
26             cin>>name;
27             while(p[fanow]!=fanow)
28             {
29                 fanow=p[fanow];
30             }
31             p[name]=fanow;
32         }
33         if(a==‘?‘)// 进行询问
34         {
35             cin>>name;
36             cout<<name<<" "<<p[name]<<endl;
37         }
38     }
39     return 0;
40 }
时间: 2024-08-24 07:12:24

家谱 要测试数据的在评论里发联系方式的相关文章

生日推理题一枚,消遣一下,有性趣的答案写评论里啊

今天在某群里有人发和一个题目,以前没见过(孤陋寡闻了),觉得挺有意思的,发出来大家消遣一下啊 Alberty (以下简称A)和Bernard (以下简称B) 认识了一个叫Cheryl (以下简称C) 的朋友,他们两个都很想知道C的生日是哪一天.C于是给了他们10个可能的日期. 5月15日, 5月16日, 5月19日 6月17日, 6月18日 7月14日, 7月16日 8月14日, 8月15日, 8月17日 然后C分别告诉了A是哪一个月,告知了B是具体是哪一天. 接着:A说:“我不知道C的生日,但

closest()一个在评论里很有用的函数

实例 本例演示如何通过 closest() 完成事件委托.当被最接近的列表元素或其子后代元素被点击时,会切换黄色背景: $( document ).bind("click", function( e ) { $( e.target ).closest("li").toggleClass("hilight"); }); 定义和用法 closest() 方法获得匹配选择器的第一个祖先元素,从当前元素开始沿 DOM 树向上. 语法 .closest(s

php5全版本绕过open_basedir读文件脚本

这是前段时间写的代码了(http://www.weibo.com/1074745063/ByAPqj7s0),最近一直忙着和几个同学一起做非安全类的创业项目.所以也没拿到JAE.SAE测试一下. 不说了..进入正题. 漏洞很久之前(大概5年前)被提出来了,但并不是php代码上的问题,所以问题一直存在,直到现在.我一直没留意,后来yaseng告诉我的,他测试了好像5.5都可以. 他在评论里发过了:http://zone.wooyun.org/content/17131,漏洞详情在这里http://

你确定你是一个合格的.Net开发人员吗?

做.net开发已有近5年时间,自认掌握的知识比较全面.最近部门需要招人,今天抽空在网上看了一下,发现我了解的还是不够多啊.下面是我大致的罗列了一下作为一名.Net开发人员所需要掌握的只是.看看你是不是都掌握了哪. 另外把这些知识点发出来,大家可以把相关的学习资料和途径在评论里发出来,供大家学些.也算是为了他人做贡献了. 如果最近有需要想换工作的可以私信给我. .Net知识点 OOA.OOP.OOD.DDDXHtmlXMLRestfull ServiceWebServiceWCFSOAWVCMVP

验证码的认识和简单验证码的攻防

验证码(CAPTCHA)一词,几乎是上网的人都接触过.通俗地将,验证码就是一种把坐在电脑前的人类与机器区分开来的测试,也算是一种最常见反图灵测试.一般来说,验证码由计算机生成,服务器端的计算机知道答案,但在网线这端,应该只有用户(即真正的人)知道答案,而计算机不知道. 从上面的定义里,易得: 验证码应该是不易被计算机识别或破解出来的,如果用简单的算法,也能得到极高的破解率(大于或接近于75%),则这个验证码不算一个合格的验证码. 要攻破验证码,最好的方法应该是机器学习,因为这个方法能让计算机模拟

微商推广引流秘笈—— 8 个高效的引流策略

不管做什么项目,销售任何产品,你都会发现推广是极其重要的,只有推广才能开发更多新客户,才能卖出更多产品,才能有更多利润. 这是永恒不变的商业定律,任何一个成功的微商,他都非常重视推广.现在我总结了 8 个高效的推广引流方法策略,只要你去执行,去实践,我向你保证,就一定会产生效果,就会有潜在客户主动找上门. 为什么我敢做这样的保证? 因为我本身就是一个网络创业者,拥有 10 年的网络营销经验,并且每天都关注网络营销最新技术策略,所总结的这 8 个推广引流策略,都是经过实践验证有效的,并且已经帮助无

当try和finally里都有return时,会忽略try的return,而使用finally的return

今天去逛论坛 时发现了一个很有趣的问题: 谁能给我我解释一下这段程序的结果为什么是:2.而不是:3 代码如下: class Test { public int aaa() { int x = 1; try { return ++x; } catch (Exception e) { } finally { ++x; } return x; } public static void main(String[] args) { Test t = new Test(); int y = t.aaa();

Java调用 新浪微博API 接口发微博,逐条讲解,绝对清晰

最近要做个课程设计,使用微博控制树莓派,树莓派再控制发光二极管的亮和灭,主要设计分两层,上层是用Java调用新浪微博API来实现对微博旳监听,当我的微博被回复时能够自动读取评论内容,并根据评论的指令内容来决定树莓派的控制动作.下层是用C语言调用操作系统底层接口来实现用树莓派GPIO接口控制发光二极管的闪烁.亮灭. 由于网上教程都很老了,最近微博接口发生了很多变化,所以我决定全新写一篇详细的博文,如若能对您起到帮助作用,那将是我莫大的荣幸.同时我非常希望能与您交流,有问题请在评论里回复我. 本文将

门户级UGC系统的技术进化路线——新浪新闻评论系统的架构演进和经验总结(转)

add by zhj:先收藏了 摘要:评论系统是所有门户网站的核心标准服务组件之一.本文作者曾负责新浪网评论系统多年,这套系统不仅服务于门户新闻业务,还包括调查.投票等产品,经历了从单机到多机再到集群,从简单到复杂再回归简单的过程. 评论系统,或者称为跟帖.留言板,是所有门户网站的核心标准服务组件之一.与论坛.博客等其他互联网UGC系统相比,评论系统虽然从产品功能角度衡量相对简单,但因为需要能够在突发热点新闻事件时,在没有任何预警和准备的前提下支撑住短短几分钟内上百倍甚至更高的访问量暴涨,而评论