博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Rainy
阅读量:7088 次
发布时间:2019-06-28

本文共 952 字,大约阅读时间需要 3 分钟。

今天bin哥讲了一下并查集

怎么说,tql,像我这种没学树啥也没学的人竟然听懂了(捂脸,讲的太好了

洛谷 P2814 家谱

 

题目描述

 

给出充足的父子关系,请你编写程序找到某个人的最早的祖先。

 

输入格式:

 

 

输入由多行组成,首先是一系列有关父子关系的描述,其中每一组父子关系中父亲只有一行,儿子可能有若干行,用#name的形式描写一组父子关系中的父亲的名字,用+name的形式描写一组父子关系中的儿子的名字;接下来用?name的形式表示要求该人的最早的祖先;最后用单独的一个$表示文件结束。

 

 

输出格式:

 

 

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

然后代码不是自己写的qwq 写这个就是记一下过程 害怕以后又忘了orz

#include
#include
#include
using namespace std;map
p;string find(string x)//不断在找根节点 { if(x!=p[x]) p[x]=find(p[x]); return p[x];}string s,s1;int main(){ char ch; cin>>ch; while(ch!='$') { cin>>s; if(ch=='#')//如果是父亲 { s1=s;//存一下 if(p[s]=="") p[s]=s;//他就是根节点了 } else if(ch=='+') p[s]=s1;//儿子的根节点就是之前的那个了 else cout<
<<' '<
<
>ch; } return 0;}

总之讲的太好了!//学姐讲的也很好qwq

 

转载于:https://www.cnblogs.com/Grigory/p/10055201.html

你可能感兴趣的文章
如何避免误删CleanMyMac语言文件
查看>>
Linux下免安装mysql
查看>>
快钱报错:javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name解决
查看>>
Hadoop集群WordCount运行详解(转)
查看>>
[转]SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
查看>>
一次性搞清楚equals和hashCode
查看>>
Android Studio IDE的 LogCat如何过滤指定应用的调试信息
查看>>
23个常用正则表达式(数值和字符串)
查看>>
struts2中struts.xml配置文件详解
查看>>
Javascript中的with用法
查看>>
GIS-008-ArcGIS JS API 全图
查看>>
js splice方法
查看>>
Linux--多网卡的7种Bond模式
查看>>
ADO 连接数据库,取到VT_DATE型日期转换成 int型
查看>>
C语言 · 寂寞的数
查看>>
android Menu 笔记
查看>>
Apache2.2和Apache2.4中httpd.conf配置文件 权限的异同
查看>>
error:Flash Download failed-“Cortex-M3”,“Programming Algorithm”【转】
查看>>
【转】spring boot web相关配置
查看>>
oc53--autorelease注意事项
查看>>