P2256 一中校运会之百米跑
-----------------------
题目链接:MIKU
---------------------
我现在发现找BUG的最好方法————喝水
喝一次找一个,喝两次A道题
---------------------------
好,下面来分析这道题,这道题一看,大家一定就会想到并查集
(不知道并查集是什么?)请自行百度或者是看博客:(链接指向网址未完工)
但是,并查集我们是针对数的,而这道题都是字符串,怎么办呢?就是建立一个结构体来储存名字和编号,当然,这样在查询时就必须要遍历每一个数组才能拿到编号,不过对于这套题来说,复杂度足够了。
所以说这道题还是挺模板的
或许MAP对于这道题也可以用,但是对于像我这样的蒟蒻来说,这种结构体还是比较稳定的;
(或许可以用一个<string,string>的MAP?,我没试)
---------------------------
再说一句,这道题的数据很水,写的是20000但是我开了个10000的数组就够了】
---------------------------
/* 我现在发现了怎样A题 喝一口水找出一个bug 啊啊啊啊 */
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct com{
int no;
string name;
} fa[];//受题目影响,就用了结构体
//用结构体打包
int faa[];//并查集部分
int n,m,k;
//得到名字,但是我们的并查集是要处理编号,所以说我们就要
//遍历得到编号
int find(string x){
for(int i=;i<=n+;++i)
if(fa[i].name==x)
return fa[i].no;
}
int findd(int x)//并查集部分
{
if(faa[x]==x)
return x;
else
return faa[x]=findd(faa[x]);
} string s,s1;
int main()
{
cin>>n>>m;//读入部分
for(int i=;i<=n;++i)
{
cin>>s;
fa[i].no=i;
fa[i].name=s;//记录名字与编号
faa[i]=i;//并查集部分
}
for(int i=;i<=m;++i)
{
cin>>s>>s1;
int v1=find(s);
int v2=find(s1);//将我们得到的名字转化成编号
// cout<<v1<<" "<<v2<<endl;
if(findd(v1)!=findd(v2))
faa[findd(v1)]=findd(v2);//并查集部分
}
cin>>k;
for(int i=;i<=k;++i)
{
cin>>s>>s1;
if(findd(find(s1))==findd(find(s)))//转换成编号,并查集部分
cout<<"Yes."<<endl;//输出
else
cout<<"No."<<endl;
}
return ;
}
AC
--------------------------
May MIKU be with you.
--------------
P2256 一中校运会之百米跑的更多相关文章
- 洛谷 P2256 一中校运会之百米跑
题目链接 https://www.luogu.org/problemnew/show/P2256 题目背景 在一大堆秀恩爱的**之中,来不及秀恩爱的苏大学神踏着坚定(?)的步伐走向了100米跑的起点. ...
- 洛谷——P2256 一中校运会之百米跑
P2256 一中校运会之百米跑 题目背景 在一大堆秀恩爱的**之中,来不及秀恩爱的苏大学神踏着坚定(?)的步伐走向了100米跑的起点.这时苏大学神发现,百米赛跑的参赛同学实在是太多了,连体育老师也忙不 ...
- 洛谷P2256 一中校运会之百米跑
题目背景 在一大堆秀恩爱的**之中,来不及秀恩爱的苏大学神踏着坚定(?)的步伐走向了100米跑的起点.这时苏大学神发现,百米赛跑的参赛同学实在是太多了,连体育老师也忙不过来.这时体育老师发现了身为体育 ...
- P2256 一中校运会之百米跑(map映射加并查集)
真心水,也许只有我这样的蒟蒻能做这种题了吧.用STL中的map将所有人的名字映射成一个数字,然后就是并查集的裸题 #include<bits/stdc++.h> using namespa ...
- P2256 一中校运会之百米跑(map+并查集)
思路:首先处理名字,让字符串直接映射唯一一个数字,这就用map<string, int>即可. 然后,直接用并查集 #include<iostream> #include< ...
- 20155206赵飞技能获取经验,C语言学习感想与对JAVA的学习目标
自己较强的技能获取经验. 1:实话实说我自己是没有哪个技能可以超过90%的人的,只有自认为做的还可以的一些事情,例如打篮球,office软件的应用,一百米跑.至于其他方面就是很平庸了. 2:经验主要有 ...
- 从维度理解dp问题
对于dp,我目前的理解就是,干成题目中的那件事需要作出若干次决策,然后你要取其中最优的结果,我们可以用深搜来递归地找最优解,然后我们来观察一下这个递归树的形状,如果它能从底往上直接递推的话,就不用递归 ...
- [C++ Primer Plus] 第4章、复合类型(二)课后习题
1.编写一个 c++ 程序,如下述输出示例所示的那样请求并显示信息 : What is your first name? Betty SueWhat is your last name? YeweWh ...
- Java并发编程之java.util.concurrent包下常见类的使用
一,Condition 一个场景,两个线程数数,同时启动两个线程,线程A数1.2.3,然后线程B数4.5.6,最后线程A数7.8.9,程序结束,这涉及到线程之间的通信. public class Co ...
随机推荐
- 关于SQL Server 2012 手动安装帮助文档
大家以为安装帮助文档很简单,但是其实不然,这其中还有那么一点点道道.今天我就来给大家演示一下! 首先到microsoft官网上下载Microsoft SQL Server 2012 产品文档,然后将. ...
- 我的一个配置redux(实现一次存储与调用方法)之旅
前言 : 今天呢,就配置一下redux,redux的重要性呢,就叭叭叭一大堆,什么也没有带着配置一次来的重要,因为许多涉及到的属性和方法,用法是活的,但格式是需要记忆的. 过程中不要嫌我唠叨,有的地方 ...
- 通过 python 处理 email - Email via Python
Email via Python 1 MIME - Multipurpose Internet Mail Extensions SMTP - Simple Message Transport Prot ...
- node基础 day1
js为什么能在浏览器中运行 浏览器内部存在一个js解析器,解析ECMAscript 把引擎从浏览器中抽离出来,不再依赖浏览器,作为一个软件安装在电脑上,在命令行里面, 这个软件就是node node ...
- tomcat增加内存 JVM内存调优
tomcat总是卡死,查看日志catalina.out 发现疯狂报错 如下,提示内存溢出 java.lang.OutOfMemoryError: Java heap space 此外常见的内存溢出有以 ...
- comm diff 文件对比
comm: 利用comm命令进行处理的文件必须首先通过sort命令进行排序处理并且是unix格式而非dos格式的文本文件 功能说明:比较两个已排过序的文件.(使用sort排序)语 法:comm [-1 ...
- ps查看资源消耗
- sed知识及常用用法梳理
1.sed命令简介及其参数说明 sed流编辑器,擅长对文本进行增删改查,过滤指定的字符串和取指定行,也可以在行中字符串前后插入内容,功能非常强大. 注意:sed默认只支持基本的正则表达式,如果要想支持 ...
- centos6.5下编译安装单实例MySQL5.1
MySQL5.1版本安装3步曲: 1) ./config 指定编译安装参数 2) make 3) make install 查看系统版本号 [root@meinv01 ~]# cat /etc/red ...
- Day1前端学习之路——概述
终于下定决心要好好学习前端知识了,以后会把学习过程中的一些随笔记录在这里.HTML.CSS.JavaScript这三大前端语言在大三的时候就有所接触,但是学习的不够深入,这一次希望能够坚持下去. 学习 ...