DongDong认亲戚(map+并查集)

题目链接:https://ac.nowcoder.com/acm/contest/904/B
来源:牛客网


题目描述


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操作给予回答


示例1


输入

4 4
chen lin yi cheng
2 chen lin
1 chen lin
1 yi lin
2 yi lin

输出

0
1

题解
太菜了,开始一看题,就以为是一道并查集裸题,但是一直没A出来,结束后看大佬代码,居然没想到用map,最后就只需要用并查集维护即可,又一次自闭!!

#include<bits/stdc++.h>
using namespace std;
int par[200010];
map<string,int>mp;
int Get_Par(int x)
{if(par[x]!=x)par[x]=Get_Par(par[x]);return par[x];
}
int main()
{ios::sync_with_stdio(false);int n,m;string s;cin>>n>>m;for(int i=0;i<n;i++){cin>>s;par[i]=i;mp[s]=i;}for(int i=0;i<m;i++){int num;string str1,str2;cin>>num>>str1>>str2;int x=mp[str1];int y=mp[str2];int num1=Get_Par(x);int num2=Get_Par(y);if(num==1){if(num1!=num2)par[num1]=num2;}else{if(num1==num2)printf("1\n");elseprintf("0\n");}}return 0;
}

DongDong认亲戚(map+并查集)相关推荐

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

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

  2. P1551 亲戚(并查集)

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

  3. 每日一题——洛谷 P1551 亲戚 (并查集)

    大家好,我是爬行系,今天打卡并查集相关例题 文章目录 并查集 1.概念 2.模板 例题 1.题目描述 2.AC代码 更多练习题 总结 并查集 1.概念 并查集的思想是用一个数组表示了整片森林(pare ...

  4. #1066 : 无间道之并查集(map+并查集)

    #1066 : 无间道之并查集 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 这天天气晴朗.阳光明媚.鸟语花香,空气中弥漫着春天的气息--额,说远了,总之,小Hi和小H ...

  5. 洛谷P1551 亲戚(并查集)

    题目链接 思路: 并查集的模板题目 关于并查集相关知识可以看此博客 AC代码 #include<iostream> #include<cstdio> #include<a ...

  6. P1551 亲戚 (并查集)

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

  7. 1249. 亲戚(并查集)

    文章目录 Question Ideas Code Question 或许你并不知道,你的某个朋友是你的亲戚. 他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子. 如果能得到完整的家谱,判断两个人是否 ...

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

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

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

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

  10. 漫画:什么是 “并查集” ?

    作者 | 封承成 来源 | 程序员小灰(ID:chengxuyuanxiaohui) 导语:并查集是一种精巧的算法,本身并不难理解,却很常用,在许多场景下都能找到并查集的身影. 本文作者封承成,年仅1 ...

最新文章

  1. c语言一对圆括号不能,C语言单元习题集
  2. 【HTML+CSS练习】画一个条件查询
  3. 全国胸最小的省是哪个,你知道吗?| 今日最佳
  4. 苏宁国美盈利报警:线下乏力线上重金加码
  5. php 警告方法 不可用,升级PHP版本后警告信息的逐一解决
  6. 比较使用LUT和不使用LUT的颜色空间转换的处理时间差异
  7. Ubuntu 16.04安装vsftpd 并开启ftp服务
  8. RIP路由协议基本配置
  9. JS实现图片无缝滚动特效;附addEventListener()方法、offsetLeft和offsetWidth属性。
  10. 同步助手 android 微信 表情包,微信表情轻松导,同步助手带你装逼带你飞
  11. HDU 2825 Wireless Password
  12. Liunx 切换用户This account is currently not available
  13. 为什么你要用卡片笔记法?
  14. kali获取同局域网设备的图片信息
  15. 鼠标右键多余菜单的清理
  16. http-equiv
  17. HTML5接入百度地图并搜索定位
  18. MacOS图标文件 .icns 一键生成脚本
  19. 惠普M1136 MFP激光打印机打印整张纸全黑
  20. 【ct107d】独立键盘

热门文章

  1. 华为企业业务的数字化与绿色节能“双向突围”
  2. 宇枫资本你需要了解的三个理财点
  3. java se runtime environment 6.0_Java SE Runtime Environment v6.0 Update 16
  4. 在SQL Sever中使用form membership认证
  5. 计算机科学与技术专业宣传口号,十大经典深入人心科技类广告语
  6. python拦截广告弹窗_通过python实现弹窗广告拦截过程详解
  7. vs运行程序时报错:“Stack around the variable XXX was corrupted”
  8. RabbitMQ之业务场景:动态创建,删除队列工具类(一)
  9. 【读书笔记】金字塔原理-构建金字塔的序言
  10. 域名证书是什么样子的_什么是网站域名证书