真心水,也许只有我这样的蒟蒻能做这种题了吧。用STL中的map将所有人的名字映射成一个数字,然后就是并查集的裸题

#include<bits/stdc++.h>
using namespace std;
map<string,int> mp;
const int maxn=;
int n,m;
int k;
int father[maxn];
string s;
string s1,s2;
string l1,l2;
int get(int x)
{
if(father[x]!=x)
{
father[x]=get(father[x]);
}
return father[x];
}
void united(int x,int y)
{
int f1=get(x);
int f2=get(y);
if(f1==f2)
{
return;
}
else
{
father[f2]=f1;
}
}
bool check(int x,int y)
{
int f1=get(x);
int f2=get(y);
if(f1==f2)
{
return true;
}
return false;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
cin>>s;
mp[s]=i;
father[mp[s]]=i;
}
for(int i=;i<=m;i++)
{
cin>>s1>>s2;
united(mp[s1],mp[s2]);
}
scanf("%d",&k);
for(int i=;i<=k;i++)
{
cin>>l1>>l2;
if(check(mp[l1],mp[l2]))
{
printf("Yes.\n");
}
else
{
printf("No.\n");
}
}
return ;
}

P2256 一中校运会之百米跑(map映射加并查集)的更多相关文章

  1. 洛谷——P2256 一中校运会之百米跑

    P2256 一中校运会之百米跑 题目背景 在一大堆秀恩爱的**之中,来不及秀恩爱的苏大学神踏着坚定(?)的步伐走向了100米跑的起点.这时苏大学神发现,百米赛跑的参赛同学实在是太多了,连体育老师也忙不 ...

  2. 洛谷 P2256 一中校运会之百米跑

    题目链接 https://www.luogu.org/problemnew/show/P2256 题目背景 在一大堆秀恩爱的**之中,来不及秀恩爱的苏大学神踏着坚定(?)的步伐走向了100米跑的起点. ...

  3. 洛谷P2256 一中校运会之百米跑

    题目背景 在一大堆秀恩爱的**之中,来不及秀恩爱的苏大学神踏着坚定(?)的步伐走向了100米跑的起点.这时苏大学神发现,百米赛跑的参赛同学实在是太多了,连体育老师也忙不过来.这时体育老师发现了身为体育 ...

  4. P2256 一中校运会之百米跑(map+并查集)

    思路:首先处理名字,让字符串直接映射唯一一个数字,这就用map<string, int>即可. 然后,直接用并查集 #include<iostream> #include< ...

  5. P2256 一中校运会之百米跑

    ----------------------- 题目链接:MIKU --------------------- 我现在发现找BUG的最好方法————喝水 喝一次找一个,喝两次A道题 --------- ...

  6. ZOJ 3644 Kitty's Game dfs,记忆化搜索,map映射 难度:2

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4834 从点1出发,假设现在在i,点数为sta,则下一步的点数必然不能是sta的 ...

  7. POJ2503——Babelfish(map映射+string字符串)

    Babelfish DescriptionYou have just moved from Waterloo to a big city. The people here speak an incom ...

  8. map——映射(message.cpp)

    信息交换 (message.cpp) [题目描述] Byteland战火又起,农夫John派他的奶牛潜入敌国获取情报信息. Cow历尽千辛万苦终于将敌国的编码规则总结如下: 1 编码是由大写字母组成的 ...

  9. filter过滤器与map映射

    filter过滤器 >>> list(filter(None,[0,1,2,True,False])) [1, 2, True] filter的作用就是后面的数据按照前面的表达式运算 ...

随机推荐

  1. Android开发——Notification通知的各种Style详解

    本来是想与之前讲解使用Notification通知使用一起写的,查看了资料,觉得有必要将这Style部分单独拿出来讲解 前篇:Android开发——Notification通知的使用及Notifica ...

  2. Java小工具 根据文本批量修改文件名

    功能 可以根据使用路径修改文件名,已经测试,可以成功运行 思路 先是读取到txt文本文件,之后使用String的spilt进行分割,每一行的格式为 旧名字 新名字,中间的空格可以使用|或者其他字符代替 ...

  3. Hdu 3001 Travelling 状态DP

    题目大意 一次旅游,经过所有城市至少一次,并且任何一座城市访问的次数不能超过两次,求最小费用 每个城市最多访问两次,用状态0,1,2标识访问次数 把城市1~N的状态按照次序连接在一起,就组成了一个三进 ...

  4. jsp基础语言-jsp声明

    jsp声明的语法格式:<%! 声明代码 %> jsp声明的意义:用来定义在程序中使用到的变量.方法等.最后要以“:”结尾. jsp声明举例: <%! int a=100,b=200; ...

  5. vue从入门到进阶:Vuex状态管理(十)

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 在 Vue 之后引入 vuex 会进行自动 ...

  6. 微信小程序(七)文章详情页面动态显示

    文章详情页面动态显示(即点击某个文章就跳转到相应文章的详情页): 思路:在文章列表页面添加catchtop事件,在js文件中获取文章的index,并用wx.navigateTo中的 url拼接详情页的 ...

  7. Android Fragment的用法(一)

    1.碎片是什么 碎片(Fragment)是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用的非常广泛.虽然碎片对你来说应该是个全新的概念,但我相信你学习起 ...

  8. Python第六天 类型转换

    Python第六天   类型转换 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Python第二天  变量  运算符与表达式  input()与raw_inp ...

  9. sqlserver 清空数据 主键从1开始

    TRUNCATE  TABLE  TbName   --TbName是表名 表清空数据之后 使新增加的记录保持从1 开始

  10. js动态创建元素之一--document.write

    以我曾经写过的例子举例 如上图,乡镇街道的名字和数目是根据数据库的数据获取的,有几个乡镇,就会显示出来几个,这就要求动态获取乡镇名称和数目,以下代码中用到了document.write创建动态页面,在 ...