DongDong认亲戚(字符串之间的并查集应用)
题目描述
DongDong每年过春节都要回到老家探亲,然而DongDong记性并不好,没法想起谁是谁的亲戚(定义:若A和B是亲戚,B和C是亲戚,那么A和C也是亲戚),她只好求助于会编程的你了。
输入描述:
第一行给定n,m表示有n个人,m次操作
第二行给出n个字符串,表示n个人的名字分别是什么(如果出现多个人名字相同,则视为同一个人)(保证姓名是小写字符串)
接下来m行,每行输入一个数opt,两个字符串x,y
当opt=1时,表示x,y是亲戚
当opt=2时,表示询问x,y是否是亲戚,若是输出1,不是输出0
数据范围:1<=n,m<=20000,名字字符长度小等于10
输出描述:
对于每个2操作给予回答
输入
4 4
chen lin yi cheng
2 chen lin
1 chen lin
1 yi lin
2 yi lin
输出
0
1
#include<algorithm>
#include<map>
#include<vector>
#include<string>
#include<iostream>
using namespace std;
map<string,string>father;
int n,m,t;
string s,s1;
string find (string x){string a=x;while(x!=father[x]){x=father[x];}while(a!=father[a]){string z=a;a=father[a];father[z]=x;}return x;
}
void bing(string a,string b){string fa=find(a);string fb=find(b);if(fa!=fb)father[fa]=fb;
}
int main ()
{cin>>n>>m;for(int i=0;i<n;i++){cin>>s;father[s]=s;}for(int i=0;i<m;i++){cin>>t>>s>>s1;if(t==1){bing(s,s1);}if(t==2){if(find(s1)==find(s))printf("1\n");elseprintf("0\n"); }}return 0;}
DongDong认亲戚(字符串之间的并查集应用)相关推荐
- 刷题记录(NC235611 牛牛国的战争,NC23803 DongDong认亲戚,NC235622 叠积木)
NC235611 牛牛国的战争 题目链接 关键点 1.因为要在能击败所有敌军的基础下,求存活最多的数量,那么我们可以对敌军的防御力从大到小排列,对于友军的攻击力从大到小排列,这样遍历一次敌军,将所有可 ...
- leetcode 839. 相似字符串组(并查集)
如果交换字符串 X 中的两个不同位置的字母,使得它和字符串 Y 相等,那么称 X 和 Y 两个字符串相似.如果这两个字符串本身是相等的,那它们也是相似的. 例如,"tars" 和 ...
- 亲戚B (普通并查集)
描述 或许你并不知道,你的某个朋友是你的亲戚.他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子.如果能得到完整的家谱,判断两个人是否是亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使 ...
- 并查集模板题(stl 中map的运用)
DongDong认亲戚 DongDong每年过春节都要回到老家探亲,然而DongDong记性并不好,没法想起谁是谁的亲戚(定义:若A和B是亲戚,B和C是亲戚,那么A和C也是亲戚),她只好求助于会编程的 ...
- 2021算法竞赛入门班第三节课【堆、栈、队列、并查集】等习题
目录 新建 Microsoft Office Word 文档[小根堆] 加边的无向图[并查集] 好串[栈 / 括号匹配] [NOIP2004]合并果子[小根堆] DongDong认亲戚[并查集] 新建 ...
- LeetCode 1061. 按字典序排列最小的等效字符串(并查集)
文章目录 1. 题目 2. 解题 1. 题目 给出长度相同的两个字符串:A 和 B,其中 A[i] 和 B[i] 是一组等价字符. 举个例子,如果 A = "abc" 且 B = ...
- 并查集应用-判断亲戚关系
题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 题目描述 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚.如 ...
- 并查集专题(亲戚,格子游戏,银河英雄传说)
文章目录 序言 正文 亲戚 时间限制: 1000 ms 空间限制: 262144 KB 题目描述 输入 输出 样例输入 样例输出 讲解 Wrong Answer Code Accepted Code ...
- java 嵌套对象转xml_Gson对Java嵌套对象和JSON字符串之间的转换 | 学步园
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的跨平台特性.近几年来已经和XML一样成为C/S架构中广泛采用的数据格式.有关JSON的更多知识, ...
- java正则表达式获取指定两个字符串之间内容
xml解析利用正则表达式获取指定两个字符串之间内容 在遇到解析复杂xml的时候,想到大家所想到的都是利用dom4j作为首发工具,但是当遇到层次很多,较为复杂,我们难道还需要从根节点一层一层的解析下去吗 ...
最新文章
- HTML用cookie实现自动登录,用cookie实现websocket自动登录,session状态保留。
- Unix编程艺术——Unix哲学
- Python3 文件读写(持续更新)
- Phpmyadmin安装过程
- 代理类Proxy------ WeakHashMap----ReferenceQueue---- Reference
- excel实战应用案例100讲(十)-下载的文件显示“文件已损坏,无法打开”?
- 【Linux学习】常用指令-sortunique
- 安卓移动应用开发实例_移动应用开发协会纳新 ||掌握信息,赢得未来
- 一家独大的亚马逊,让人恐慌?
- 2016 年最值得程序员阅读的开源书:《全栈增长工程师指南》
- Raider:Web身份认证测试框架
- 基于百度云AI开发车型识别车牌识别案例详解
- ESXI安装网卡或HBA卡驱动
- 本科双非,考研压线上北大,总结一下我的复习过程,希望对考研er有点帮助!
- 安卓10自带录屏_华为荣耀10怎么录屏 荣耀10录屏的三种方法
- 蓝牙手柄UKCA认证
- 更改控制面板硬件和声音电源选项导致cpu温度很高
- 如何把word中的多级编号中的题注“图一.1”自动变成“图1.1”
- 四款好用的在线表单工具盘点
- excel怎么快速判断录入银行卡号是否正确?