题目

链接:https://ac.nowcoder.com/acm/contest/28886/1021
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld

题目描述

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

代码

#include <cstdio>
#include <map>
#include <string>
#include <iostream>
using namespace std;
int r[20010];
int fa[20010];
map<string, int>mp;
int find(int x)
{return x == fa[x] ? x : fa[x] = find(fa[x]);
}
inline void mer(int x, int y)//注意:必须要进行判断是不是一个集合
{int xg = find(x);int yg = find(y);if (xg == yg)return;if (r[xg] > r[yg]){fa[yg] = fa[xg];}else if (r[xg] < r[yg]){fa[xg] = fa[yg];}else{fa[yg] = fa[xg];r[xg]++;}
}
int main()
{int n, m;scanf("%d%d", &n, &m);for (int i = 0; i < n; i++){string s;cin >> s;mp[s] = i;//虽然名字相同认为一个人,map本来就是单一容器fa[i] = i;}for (int i = 0; i < m; i++){int  op;string s1;string s2;scanf("%d", &op);cin >> s1 >> s2;switch (op){case 1:mer(mp[s1], mp[s2]);break;case 2:if (find(mp[s1]) == find(mp[s2])){printf("1\n");}elseprintf("0\n");break;}}return 0;
}

DongDong认亲戚 来源:牛客网相关推荐

  1. 运维校招面经汇总(来源牛客网)

    shopee SRE 作者:Stackingrule 链接:https://www.nowcoder.com/discuss/626107?source_id=discuss_experience_n ...

  2. 2016面试整理--来源牛客网

    马上国庆节了,首先祝大家最后都能有个满意的offer,国庆几天好好养精蓄锐. 我经常在牛客群里水群,应该不少人看我眼熟的. 本人是一个杭州渣硕,本科也很一般,和211 985半点都粘不到,没有参加过A ...

  3. 牛牛爱奇数 来源:牛客网

    题目 链接:https://ac.nowcoder.com/acm/contest/28886/1016 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K, ...

  4. 牛客网 |复数集合( 北邮往年复试题)

    题目来源 牛客网北邮往年考题 输入 3 Pop Insert 1+i2 Pop 输出 empty SIZE = 1 1+i2 SIZE = 0 #include<iostream> #in ...

  5. 华为机试python编程题_牛客网华为机试题之Python解法

    牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...

  6. 牛客网校招题题目收集----数据结构与算法篇

    选择题 a,b,c,d,e 对应出现的频率为4,6,11,13,15:以下符合哈夫曼编码的选项是?() A. a=000.b=01.c=001.d=10.e=11 B. a=000.b=001.c=0 ...

  7. 链接:https://ac.nowcoder.com/acm/problem/22228来源:牛客网题目描述 在给定的数组中删除一个数。输入描述:多组测试。每组第一行输入1个整数n(n

    链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 在给定的数组中删除一个数. 输入描述: 多组测试. 每组第一行输入1个整数n(n<20), 第二行输入n个整数 第三行输入1 ...

  8. [C++] 牛客网:合并两个有序的数组

    主要是体验一下牛客网里的核心代码模式到底是怎么弄的..还有C++这个东西平常用的太少了,试一试. 以外的还体验到了sort()函数的使用. 来源:牛客网 题目链接:合并两个有序的数组 知识点:数组.双 ...

  9. 字节跳动java笔试题目_牛客网--字节跳动面试题--特征提取

    牛客网--字节跳动面试题--特征提取 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 来源 链接:特征提取 来源:牛客网 题目 ...

  10. 牛客网:为什么不能将实数作为 HashMap 的 key?

    欢迎关注方志朋的博客,回复"666"获面试宝典 1.起因 让我关注到这一点的起因是一道题:牛客网上的max-points-on-a-line 题目是这么描述的: Given n p ...

最新文章

  1. 对OCR文字识别软件进行自动分析和识别设置的教程
  2. Popupwindowdemo
  3. KDE应用如何在GNOME环境下运行?
  4. c++ 读文件_Linux文件(文件夹)详解
  5. 设置计算机的出站和入站规则
  6. 6000毫安以上智能手机_三星超长续航神机,6000毫安+128GB,上市半年不到跌至1499...
  7. 实时控制软件设计第二周作业-停车场门禁控制系统状态机设计
  8. Redis Sentinel
  9. python程序加密_项目源代码被好朋友“盗用”!让我痛心疾首!给Python源码加密!...
  10. 数据库-使用Command对象进行数据库查询
  11. node怎么把token放到redis_从零开始手写 redis(八)朴素 LRU 淘汰算法性能优化
  12. 好程序员分享24个canvas基础知识小结 1
  13. HALCON学习笔记 1
  14. Python处理海量手机号码
  15. 老骥伏羲,某讯遗产K3路由器2021年刷机指南。
  16. 读书笔记-捌-《创业维艰》
  17. pentaho-server 与 Pentaho Data Integration(pentaho-kettle)
  18. vscode cshtml 智能提示
  19. ZZULIOJ1086: ASCII码排序(多实例测试)
  20. 更高更快更强 游戏引擎发展漫谈

热门文章

  1. Word双面打印自动确定器
  2. NCU SEM 发文检索2014年
  3. pkpm弹性时程分析计算书怎么出_一套软件,带你掌握复杂建筑结构分析方法
  4. OA审批流程是什么?如何提升OA审批流程效率?
  5. 计算机系统盘怎么扩充,c盘扩大,教您怎么把c盘扩大
  6. 国家开放大学2021春1135液压气动技术题目
  7. hive 自定义UDF函数解析HTML
  8. Java证书读取的两种方式
  9. WEB自动化测试学习进度
  10. Kubernetes Pod健康检查-livenessProbe和readinessProbe