正题

题目链接:
https://www.luogu.org/problemnew/show/P2814


大意

有n个父子关系(可能不止一个孩子),询问一些人最大的祖先


代码

#include<cstdio>
#include<map>
#include<string>
#include<iostream>
using namespace std;
map<string,string> father;//map库
string name,fathers;
char c;
string find(string x)
{if (x!=father[x]) return father[x]=find(father[x]);return father[x];
}
void unionn(string x,string y)
{string fa=find(x),fb=find(y);father[fa]=fb;
}
int main()
{while (true){cin>>c;if (c=='$') break;cin>>name;if (father[name]=="") father[name]=name;if (c=='#'){fathers=name;//记录父亲}if (c=='+'){unionn(name,fathers);//连接}if (c=='?'){cout<<name<<' '<<find(name)<<endl;//询问}}
}

P2814-家谱【图论,并查集,std map库】相关推荐

  1. 【洛谷】P2814 家谱(并查集)**

    穿越隧道 需要注意输入输出的使用 以及查找某个字符串的父亲字符串,这种数据结构若没想清直接用string p[N],是行不通的.: N为整型,不能为字符串.看到大佬的题解,有的使用的是map<s ...

  2. 小花梨判连通(DFS或BFS或并查集+vector+map)——“美登杯”上海市高校大学生程序设计邀请赛 (华东理工大学)

    (https://acm.ecnu.edu.cn/contest/173/problem/C/) 题目大意: 小花梨给出?个点,让?位同学对这?个点任意添加无向边,构成?张图.小花梨想知道对于每个点? ...

  3. 1396 家谱(并查集应用) 题解

    题目描述 在冰岛,你的某个朋友是你的亲戚,为此有个APP就是可以测算出你和你的ta是否带有血缘关系.他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子.此时,如果能得到完整的家谱,判断两个人是否是亲戚 ...

  4. 图论 + 并查集 ----最小生成树重构图 + 可撤销并查集 + set启发式合并 时间线上的离线求解 D. Graph and Queries

    解题思路 题目大意: 就是给你一个无向图,每个点都有一个权值,和qqq次询问 每次询问有两种操作 1 x:就询问从x点出发,能访问到的最大权值是多少,并把最大权值那个点的权值设置为0 2 x:就是删除 ...

  5. 牛客小白月赛25 C-白魔法师 ( 图论 + 并查集 )

    题目链接 解题报告: 思路:如果将一个黑色点染成白色,那么将得到一个白色连通块,这个连通块由和这个黑色点连结的所有白色连通块组成. 如果将一个白色点染成白色,那么不会有任何变化. 所以我们可以先并查集 ...

  6. 【并查集】家谱(luogu 2814/ssl 2343)

    家谱 luogu 2814 ssl 2343 题目大意: 给一堆父子关系,求出一些人的最大的祖先 原题: 题目背景 现代的人对于本家族血统越来越感兴趣. 题目描述 给出充足的父子关系,请你编写程序找到 ...

  7. 【并查集】【模拟】家谱

    题目: 现代的人对于本家族血统越来越感兴趣, 现在给出充足的父子关系, 请你编写程序找到 某个人的最早的祖先. 输入: 输入文件由多行组成, 首先是一系列有关父子关系的描述, 其中每一组父子关系由二行 ...

  8. 【POJ】1308 Is It A Tree?((并查集 + set)or (map))

    http://poj.org/problem?id=1308 这个题数组开到200就可以了,但题目中貌似没有说呢? 读入每一对顶点,看看他们是否在同一个集合中,如果是的话,肯定成环,不是一棵树. 用s ...

  9. uvalive5796(图论、桥、并查集)

    题意: 给出一个无向图,每次询问,问两个点之间是否有一条唯一的不经过重复点的路径. 思路: 如果存在这样的路径,那么路径上的点就都是桥,我们可以找出图中所有的桥,把非桥边删去,把桥连的点塞到并查集中, ...

最新文章

  1. java ArrayList 清空元素时迭代器造成的错误
  2. 精简自己20%的代码
  3. ORACLE HANDBOOK系列之九:时间与时区(Time and Time Zone)
  4. 基于阿里云RDS创建ECS自建从库
  5. Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext
  6. Linux安装MySQL8.0
  7. Scrapy分布式原理及Scrapy-Redis源码解析(待完善)
  8. java根据表名取出字MySQL_mysql取得数据库所有表名和字段注释_MySQL
  9. 小蠓虫如何灭_怎样消灭蠓虫?
  10. 校门外的树和memset
  11. error: Unable to find vcvarsall.bat
  12. 学校计算机的使用作文,电脑课上作文(3篇)
  13. Builder模式和工厂模式的区别
  14. Tomcat——通过.bat批处理程序重启Tomcat
  15. c语言图书馆管理系统(功能非常之多)
  16. Python-torch.optim优化算法理解之optim.Adam()
  17. 处理器的计算能力如何计算
  18. 【汤家凤考研数学手稿】第四章 不定积分(就找原函数,为定积分莱布尼茨公式铺垫)
  19. 小程序 【头像昵称填写能力】使用
  20. 成功解决LINK : fatal error LNK1181: 无法打开输入文件“avdevice.lib” error: command 'D:\\Program Files (x86)\\Micr

热门文章

  1. 润乾报表分组求和_实现报表数据预先计算
  2. win10+tomcat+php+配置环境变量配置,Win10系统Tomcat环境变量配置方法
  3. vim 寄存器 操作_vim指令
  4. linux ubuntu 开启ssh服务,开启SSH服务远程登录ubuntu
  5. 移动端h5唤起键盘_移动端H5界面打开后,如何自动调用软键盘
  6. 修改linux路径,科学网-修改linux终端路径颜色-胡涛的博文
  7. The Last Non-zero Digit POJ - 1150(n!mod p)
  8. 基于matlab的数字下变频器的设计与仿真应用,基于MATLAB的数字下变频器的没汁与仿真应用...
  9. java 双击_利用java开发一个双击执行的小程序
  10. python加密与解密_Python加密与解密,pythonCrypt,和