P2814-家谱【图论,并查集,std map库】
正题
题目链接:
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库】相关推荐
- 【洛谷】P2814 家谱(并查集)**
穿越隧道 需要注意输入输出的使用 以及查找某个字符串的父亲字符串,这种数据结构若没想清直接用string p[N],是行不通的.: N为整型,不能为字符串.看到大佬的题解,有的使用的是map<s ...
- 小花梨判连通(DFS或BFS或并查集+vector+map)——“美登杯”上海市高校大学生程序设计邀请赛 (华东理工大学)
(https://acm.ecnu.edu.cn/contest/173/problem/C/) 题目大意: 小花梨给出?个点,让?位同学对这?个点任意添加无向边,构成?张图.小花梨想知道对于每个点? ...
- 1396 家谱(并查集应用) 题解
题目描述 在冰岛,你的某个朋友是你的亲戚,为此有个APP就是可以测算出你和你的ta是否带有血缘关系.他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子.此时,如果能得到完整的家谱,判断两个人是否是亲戚 ...
- 图论 + 并查集 ----最小生成树重构图 + 可撤销并查集 + set启发式合并 时间线上的离线求解 D. Graph and Queries
解题思路 题目大意: 就是给你一个无向图,每个点都有一个权值,和qqq次询问 每次询问有两种操作 1 x:就询问从x点出发,能访问到的最大权值是多少,并把最大权值那个点的权值设置为0 2 x:就是删除 ...
- 牛客小白月赛25 C-白魔法师 ( 图论 + 并查集 )
题目链接 解题报告: 思路:如果将一个黑色点染成白色,那么将得到一个白色连通块,这个连通块由和这个黑色点连结的所有白色连通块组成. 如果将一个白色点染成白色,那么不会有任何变化. 所以我们可以先并查集 ...
- 【并查集】家谱(luogu 2814/ssl 2343)
家谱 luogu 2814 ssl 2343 题目大意: 给一堆父子关系,求出一些人的最大的祖先 原题: 题目背景 现代的人对于本家族血统越来越感兴趣. 题目描述 给出充足的父子关系,请你编写程序找到 ...
- 【并查集】【模拟】家谱
题目: 现代的人对于本家族血统越来越感兴趣, 现在给出充足的父子关系, 请你编写程序找到 某个人的最早的祖先. 输入: 输入文件由多行组成, 首先是一系列有关父子关系的描述, 其中每一组父子关系由二行 ...
- 【POJ】1308 Is It A Tree?((并查集 + set)or (map))
http://poj.org/problem?id=1308 这个题数组开到200就可以了,但题目中貌似没有说呢? 读入每一对顶点,看看他们是否在同一个集合中,如果是的话,肯定成环,不是一棵树. 用s ...
- uvalive5796(图论、桥、并查集)
题意: 给出一个无向图,每次询问,问两个点之间是否有一条唯一的不经过重复点的路径. 思路: 如果存在这样的路径,那么路径上的点就都是桥,我们可以找出图中所有的桥,把非桥边删去,把桥连的点塞到并查集中, ...
最新文章
- java ArrayList 清空元素时迭代器造成的错误
- 精简自己20%的代码
- ORACLE HANDBOOK系列之九:时间与时区(Time and Time Zone)
- 基于阿里云RDS创建ECS自建从库
- Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext
- Linux安装MySQL8.0
- Scrapy分布式原理及Scrapy-Redis源码解析(待完善)
- java根据表名取出字MySQL_mysql取得数据库所有表名和字段注释_MySQL
- 小蠓虫如何灭_怎样消灭蠓虫?
- 校门外的树和memset
- error: Unable to find vcvarsall.bat
- 学校计算机的使用作文,电脑课上作文(3篇)
- Builder模式和工厂模式的区别
- Tomcat——通过.bat批处理程序重启Tomcat
- c语言图书馆管理系统(功能非常之多)
- Python-torch.optim优化算法理解之optim.Adam()
- 处理器的计算能力如何计算
- 【汤家凤考研数学手稿】第四章 不定积分(就找原函数,为定积分莱布尼茨公式铺垫)
- 小程序 【头像昵称填写能力】使用
- 成功解决LINK : fatal error LNK1181: 无法打开输入文件“avdevice.lib” error: command 'D:\\Program Files (x86)\\Micr
热门文章
- 润乾报表分组求和_实现报表数据预先计算
- win10+tomcat+php+配置环境变量配置,Win10系统Tomcat环境变量配置方法
- vim 寄存器 操作_vim指令
- linux ubuntu 开启ssh服务,开启SSH服务远程登录ubuntu
- 移动端h5唤起键盘_移动端H5界面打开后,如何自动调用软键盘
- 修改linux路径,科学网-修改linux终端路径颜色-胡涛的博文
- The Last Non-zero Digit POJ - 1150(n!mod p)
- 基于matlab的数字下变频器的设计与仿真应用,基于MATLAB的数字下变频器的没汁与仿真应用...
- java 双击_利用java开发一个双击执行的小程序
- python加密与解密_Python加密与解密,pythonCrypt,和