zoukankan      html  css  js  c++  java
  • 家谱 要测试数据的在评论里发联系方式

    家谱(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 }
  • 相关阅读:
    一行代码教你屏蔽你的博客广告
    一步一步教你给博客主页添加自定义炫酷效果
    让资源管理器变得像Chrome一样标签化
    weblayer组件介绍
    Tiny模板编辑器
    Tiny流程编辑器
    Tiny界面编辑器
    Tiny模板运行器
    org.tinygroup.pageflowbasiccomponent-页面流
    Tiny服务编辑器
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/6701237.html
Copyright © 2011-2022 走看看