P2256 一中校运会之百米跑

题目背景

在一大堆秀恩爱的**之中,来不及秀恩爱的苏大学神踏着坚定(?)的步伐走向了100米跑的起点。这时苏大学神发现,百米赛跑的参赛同学实在是太多了,连体育老师也忙不过来。这时体育老师发现了身为体育委员的苏大学神,便来找他帮忙。可是苏大学神需要热身,不然跑到一半就会抽(筋)、于是他就找到了你。。。如果你帮助体育老师解决了问题,老师就会给你5个积分。

题目描述

假设一共有N(2<=N<=20000)个参赛选手。(尼玛全校学生都没这么多吧)

老师会告诉你这N个选手的名字。

接着会告诉你M(1<=M<=1000000)句话,即告诉你学生A与学生B在同一个组里。

如果学生A与学生B在同一组里,学生B与学生C也在同一组里,就说明学生A与学生C在同一组。

然后老师会问你K(1<=K<=1000000)句话,即学生X和学生Y是否在同一组里。

若是则输出"Yes.",否则输出"No."

输入输出格式

输入格式:

第一行输入N和M。

接下来N行输入每一个同学的名字。

再往下M行每行输入两个名字,且保证这两个名字都在上面的N行中出现过,表示这两个参赛选手在同一个组里。

再来输入K。

接下来输入K个体育老师的询问。

输出格式:

对于每一个体育老师的询问,输出"Yes."或"No."。

输入输出样例

输入样例#1:

10 6
Jack
Mike
ASDA
Michel
brabrabra
HeHe
HeHE
papapa
HeY
Obama
Jack Obama
HeHe HeHE
brabrabra HeHe
Obama ASDA
papapa Obama
Obama HeHE
3
Mike Obama
HeHE Jack
papapa brabrabra

输出样例#1:

No.
Yes.
Yes.
#include<map>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define N 5100
using namespace std;
map<string,int>a;
int fa[N];
int read()
{int x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1; ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();}return x*f;
}
int find(int x)
{if(x==fa[x]) return x;fa[x]=find(fa[x]);return fa[x];
}
int main()
{int n,m,k,x,y,fx,fy,ans=0;string ch,ch1,ch2;n=read(),m=read();for(int i=1;i<=n;i++){cin>>ch;a[ch]=i;}for(int i=1;i<=n;i++) fa[i]=i;for(int i=1;i<=m;i++){cin>>ch1>>ch2;x=a[ch1],y=a[ch2];fx=find(x),fy=find(y);if(fa[fx]==fa[fy]) continue;fa[fx]=fy;}cin>>k;for(int i=1;i<=k;i++){cin>>ch1>>ch2;x=a[ch1],y=a[ch2];if(find(x)==find(y)) printf("Yes.\n");else printf("No.\n");}return 0;
}

转载于:https://www.cnblogs.com/z360/p/7436516.html

洛谷——P2256 一中校运会之百米跑相关推荐

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

    传送门 思路: 变种后的并查集,用map<string,string>来存. #include<bits/stdc++.h> using namespace std; cons ...

  2. 洛谷 P2046 BZOJ 2007 海拔(NOI2010)

    题目描述 YT市是一个规划良好的城市,城市被东西向和南北向的主干道划分为n×n个区域.简单起见,可以将YT市看作 一个正方形,每一个区域也可看作一个正方形.从而,YT城市中包括(n+1)×(n+1)个 ...

  3. NOIP2016·洛谷·天天爱跑步

    初见安~这里是传送门:洛谷P1600 题目描述 小c同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每天按时上线,完成打 ...

  4. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  5. 洛谷P2763 试题库问题

    题目:https://www.luogu.org/problemnew/show/P2763 题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性. ...

  6. 洛谷 P1843 奶牛晒衣服

    题目背景 熊大妈决定给每个牛宝宝都穿上可爱的婴儿装 . 于是 , 为牛宝宝洗晒衣服就成了很不爽的事情. 题目描述 熊大妈请你帮助完成这个重任 . 洗完衣服后 , 你就要弄干衣服 . 衣服在自然条件下用 ...

  7. 2018.07.17 洛谷P1368 工艺(最小表示法)

    传送门 好的一道最小表示法的裸板,感觉跑起来贼快(写博客时评测速度洛谷第二),这里简单讲讲最小表示法的实现. 首先我们将数组复制一遍接到原数组队尾,然后维护左右指针分别表示两个即将进行比较的字符串的头 ...

  8. 洛谷P2766-最长递增子序列问题

    chunlvxiong的博客 题目描述: 给定正整数序列x1,...,xn (1≤n≤500). 1.计算其最长递增子序列的长度s. 2.计算从给定的序列中最多可取出多少个长度为s的递增子序列. 3. ...

  9. 洛谷2505 [HAOI2012]道路(最短路计数)

    洛谷传送门 [题目分析] 线段树?bczd,这么小的范围直接暴力就行啦. 直接O(n)枚举源点,每次跑最短路,然后对于每一条路径统计是否在最短路上.两个端点各有多少条最短路径经过即可. [代码~] # ...

最新文章

  1. 初识linux之文件管理
  2. java中filereader读取文件_java – 如何使用FileReader逐行读取
  3. 傅里叶变换应用——信号调制与解调
  4. 八位二进制数码管显示multisim_显示屏基础知识(LED电子显示屏的维修资料(芯片))4...
  5. wordpress linux伪静态,nginx下wordpress伪静态设置
  6. 用c语言编写小于n的所有素数,关于求N以内素数的一点小问题(N小于一亿)
  7. [转载] dataframe中有关inf的处理技巧
  8. 【GIS导论】实验二 数据采集
  9. dism++封装系统使用教程_【原创】最新WIN10系统封装教程2019系列(一)——定制母盘...
  10. 计算机的doc命令怎么学,如何进入dos系统 四种方法教学【图文教程】
  11. Python:猴子分香蕉
  12. poi 同时 冻结第一行和第一列
  13. 数据+人工智能+模型——北京市新一代交通仿真模型框架
  14. JS如何获取屏幕、浏览器及网页高度宽度?
  15. Round12—Huffman 树
  16. 如何快速将图片中的文字提取出来
  17. 莽莽昆仑开鸿蒙,中国科技人,那些“芳心纵火犯”
  18. 应对功能性失衡-农业大健康·万建民:生物营养强化精准扶贫
  19. yolov5 + second_classify -- 代码
  20. Abaqus硅胶管拉伸仿真

热门文章

  1. Linux内核源码学习
  2. Linux内核开发函数详解
  3. 测试如何开始像用户那样思考(译)
  4. 学习旧岛小程序 (3)组件的样式
  5. 数据库中的约束和三大范式
  6. Python基础-re模块
  7. c# 建立到数据源的连接 以及获取项目配置文件的属性
  8. StringUtils 正则校验
  9. 15种CSS居中的方式
  10. 为模型推断的端部的大小