1042: Fight

Time Limit: 1 Sec  Memory Limit:
128 MB

Submit: 26  Solved: 8

[Submit][Status][

pid=1042">Web
Board
]

Description

尽管格斗是很须要技术的一项运动。可是打群架却不须要什么技术,并且场面一般比較混乱,分不清谁和谁是一伙的,仅仅能看出谁和谁不是一伙的,并且打群架常常会出现猪一样的队友。误伤自己人。

如今给你一些信息,请你根据这些信息推断是否一定存在猪一样的队友。

Input

包括多组測试例子。
第一行输入两个数N(1<N<10000),M(1<M<1000000). N表示參与打架的人数,M表示M次攻击。

接下来M行输入两个整数a, b (1<=a, b<=N),表示a攻击了b。

Output

若一定存在猪一样的队友输出YES, 否则输出NO。每一个输出占一行。

Sample Input

3 3
1 2
2 3
1 3 4 2
1 2
3 4

Sample Output

YES
NO

HINT

a攻击b且b攻击c 则可判断 a,c同伙,若a攻击c则有矛盾,即必定存在误伤。

Source

tyh

解析:參见ACdream 1056 Bad Horse (种类并查集)

AC代码:

#include <bits/stdc++.h>
using namespace std; const int maxn = 10005; int f[2 * maxn + 2]; int Find(int x){
return x == f[x] ? x : f[x] = Find(f[x]);
} void unin(int x, int y){
x = Find(x);
y = Find(y);
if(x != y) f[x] = y;
} int main(){
#ifdef sxk
freopen("in.txt", "r", stdin);
#endif // sxk int n, m, a, b;
while(~scanf("%d%d", &n, &m)){
for(int i=1; i<=2 * maxn; i++) f[i] = i;
int flag = 0;
for(int i=0; i<m; i++){
scanf("%d%d", &a, &b);
if(Find(a) == Find(b) || Find(a + maxn) == Find(b + maxn))
flag = 1;
else{
unin(a, b + maxn);
unin(a + maxn, b);
}
}
puts(flag ? "YES" : "NO");
}
return 0;
}

HLJU 1042 Fight (种类并查集)的更多相关文章

  1. NOI2001|POJ1182食物链[种类并查集 向量]

    食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 65430   Accepted: 19283 Description ...

  2. NOIP2010关押罪犯[并查集|二分答案+二分图染色 | 种类并查集]

    题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨气值”(一个正整数值)来表示 ...

  3. POJ1703Find them, Catch them[种类并查集]

    Find them, Catch them Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 42416   Accepted: ...

  4. poj1417(种类并查集+dp)

    题目:http://poj.org/problem?id=1417 题意:输入三个数m, p, q 分别表示接下来的输入行数,天使数目,恶魔数目: 接下来m行输入形如x, y, ch,ch为yes表示 ...

  5. poj1733(种类并查集+离散化)

    题目链接: http://poj.org/problem?id=1733 题意: 输入n表示有一个长度为n的0,1字符串, m表示接下来有m行输入, 接下来的m行输入中x, y, even表示第x到第 ...

  6. poj 1182:食物链(种类并查集,食物链问题)

    食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 44168   Accepted: 12878 Description ...

  7. pku 1703(种类并查集)

    题目链接:http://poj.org/problem?id=1703 思路;个人觉得本质上还是和带权并查集一样的,只不过多了一个MOD操作,然后就是向量关系图稍微改动一下就变成种类并查集了,对于本题 ...

  8. hdu 3038 How Many Answers Are Wrong(种类并查集)2009 Multi-University Training Contest 13

    了解了种类并查集,同时还知道了一个小技巧,这道题就比较容易了. 其实这是我碰到的第一道种类并查集,实在不会,只好看着别人的代码写.最后半懂不懂的写完了.然后又和别人的代码进行比较,还是不懂,但还是交了 ...

  9. 【进阶——种类并查集】hdu 1829 A Bug's Life (基础种类并查集)TUD Programming Contest 2005, Darmstadt, Germany

    先说说种类并查集吧. 种类并查集是并查集的一种.但是,种类并查集中的数据是分若干类的.具体属于哪一类,有多少类,都要视具体情况而定.当然属于哪一类,要再开一个数组来储存.所以,种类并查集一般有两个数组 ...

随机推荐

  1. phantomjs 抓取房产信息

    抓取https://sf.taobao.com/item_list.htm信息 driver=webdriver.PhantomJS(service_args=['--ssl-protocol=any ...

  2. css border-sizing 用法与理解

    浏览器支持 IE Firefox Chrome Safari Opera  支持  支持  支持  支持  支持 Internet Explorer.Opera 以及 Chrome 支持 box-si ...

  3. python 实现计算数独

    输入文件格式: 008309100900060004007504800036000540001000600042000970005907300600010008004608200 输出结果: yuan ...

  4. Spark Streaming no receivers彻底思考

    数据接入Spark Streaming的二种方式:Receiver和no receivers方式 建议企业级采用no receivers方式开发Spark Streaming应用程序,好处: 1.更优 ...

  5. 云计算之路-试用Azure:竟然无法重置虚拟机的管理员密码

    在忘记管理员密码的情况下,可以远程重置服务器的管理员密码是云计算服务的一个优势,这是使用自己的物理服务器无法实现的. 但是,在使用Azure的时候,我们找遍Azure管理控制台也没找到可以重置虚拟机( ...

  6. java中异常介绍

    一.异常概述 异常处理已经成为衡量一门语言是否成熟的标准之一,目前的主流编程语言如C++.C#.Ruby.Python等,大都提供了异常处理机制.增加了异常处理机制后的程序有更好的容错性,更加健壮. ...

  7. android 蓝牙SPP协议通信

    准备 1.蓝牙串行端口基于SPP协议(Serial Port Profile),能在蓝牙设备之间创建串口进行数据传输 2.SPP的UUID:00001101-0000-1000-8000-00805F ...

  8. web页面查看Tomcat服务器指标

    在进行性能测试时,一般都需要对应用服务器进行监控,监控的指标包括应用服务器的JVM使用状况.可用连接数.队列长度等信息.商业的应用服务器如WebLogic.WebSphere等都提供了Console对 ...

  9. JSP语法学习笔记

    1.修改JSP页面模版:找到MyEclips安装目录,搜索“Jsp.vtl”,找到该文件修改编码,以及一些不需要用到的代码. 2.查找项目生成的Servlet文件路径:查看当前项目父级目录搜索 .me ...

  10. 【Linux】监控系统的状态

    1.w命令 w命令是一个很强大的命令,该命令显示的信息比较丰富.以下是我的虚拟机w命令的一个展示 从上图我们可以看到: 第一行从左面开始显示的信息依次为:时间.系统运行时间.登陆用户数.平均负载 第二 ...