题目描述
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认亲戚(字符串之间的并查集应用)相关推荐

  1. 刷题记录(NC235611 牛牛国的战争,NC23803 DongDong认亲戚,NC235622 叠积木)

    NC235611 牛牛国的战争 题目链接 关键点 1.因为要在能击败所有敌军的基础下,求存活最多的数量,那么我们可以对敌军的防御力从大到小排列,对于友军的攻击力从大到小排列,这样遍历一次敌军,将所有可 ...

  2. leetcode 839. 相似字符串组(并查集)

    如果交换字符串 X 中的两个不同位置的字母,使得它和字符串 Y 相等,那么称 X 和 Y 两个字符串相似.如果这两个字符串本身是相等的,那它们也是相似的. 例如,"tars" 和 ...

  3. 亲戚B (普通并查集)

    描述 或许你并不知道,你的某个朋友是你的亲戚.他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子.如果能得到完整的家谱,判断两个人是否是亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使 ...

  4. 并查集模板题(stl 中map的运用)

    DongDong认亲戚 DongDong每年过春节都要回到老家探亲,然而DongDong记性并不好,没法想起谁是谁的亲戚(定义:若A和B是亲戚,B和C是亲戚,那么A和C也是亲戚),她只好求助于会编程的 ...

  5. 2021算法竞赛入门班第三节课【堆、栈、队列、并查集】等习题

    目录 新建 Microsoft Office Word 文档[小根堆] 加边的无向图[并查集] 好串[栈 / 括号匹配] [NOIP2004]合并果子[小根堆] DongDong认亲戚[并查集] 新建 ...

  6. LeetCode 1061. 按字典序排列最小的等效字符串(并查集)

    文章目录 1. 题目 2. 解题 1. 题目 给出长度相同的两个字符串:A 和 B,其中 A[i] 和 B[i] 是一组等价字符. 举个例子,如果 A = "abc" 且 B = ...

  7. 并查集应用-判断亲戚关系

    题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 题目描述 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚.如 ...

  8. 并查集专题(亲戚,格子游戏,银河英雄传说)

    文章目录 序言 正文 亲戚 时间限制: 1000 ms 空间限制: 262144 KB 题目描述 输入 输出 样例输入 样例输出 讲解 Wrong Answer Code Accepted Code ...

  9. java 嵌套对象转xml_Gson对Java嵌套对象和JSON字符串之间的转换 | 学步园

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的跨平台特性.近几年来已经和XML一样成为C/S架构中广泛采用的数据格式.有关JSON的更多知识, ...

  10. java正则表达式获取指定两个字符串之间内容

    xml解析利用正则表达式获取指定两个字符串之间内容 在遇到解析复杂xml的时候,想到大家所想到的都是利用dom4j作为首发工具,但是当遇到层次很多,较为复杂,我们难道还需要从根节点一层一层的解析下去吗 ...

最新文章

  1. HTML用cookie实现自动登录,用cookie实现websocket自动登录,session状态保留。
  2. Unix编程艺术——Unix哲学
  3. Python3 文件读写(持续更新)
  4. Phpmyadmin安装过程
  5. 代理类Proxy------ WeakHashMap----ReferenceQueue---- Reference
  6. excel实战应用案例100讲(十)-下载的文件显示“文件已损坏,无法打开”?
  7. 【Linux学习】常用指令-sortunique
  8. 安卓移动应用开发实例_移动应用开发协会纳新 ||掌握信息,赢得未来
  9. 一家独大的亚马逊,让人恐慌?
  10. 2016 年最值得程序员阅读的开源书:《全栈增长工程师指南》
  11. Raider:Web身份认证测试框架
  12. 基于百度云AI开发车型识别车牌识别案例详解
  13. ESXI安装网卡或HBA卡驱动
  14. 本科双非,考研压线上北大,总结一下我的复习过程,希望对考研er有点帮助!
  15. 安卓10自带录屏_华为荣耀10怎么录屏 荣耀10录屏的三种方法
  16. 蓝牙手柄UKCA认证
  17. 更改控制面板硬件和声音电源选项导致cpu温度很高
  18. 如何把word中的多级编号中的题注“图一.1”自动变成“图1.1”
  19. 四款好用的在线表单工具盘点
  20. excel怎么快速判断录入银行卡号是否正确?

热门文章

  1. php判断caj文件页数,2M内的CAJ文档如何转PDF免费?不限页数手机在线操作分享
  2. 透气清爽的高回弹跑鞋,跑步轻松畅快,咕咚逐日21K体验
  3. 抽象代数学习 阿贝尔群
  4. oracle 英文术语,英雄联盟英文术语整理 美服不再哑巴
  5. 吐个槽:bose的售后真心差劲!愧对这个顶级音响产品!
  6. 在php中如何设置字体宋体,css怎么设置字体为宋体?
  7. BOS EAS 实体增加字段,关联核算项目
  8. Java实现通过证书访问Https请求
  9. 在路上——黄山、宏村
  10. Arm 架构的过程调用标准