poj1703 Find them, Catch them(并查集的应用)
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 32225 | Accepted: 9947 |
Description
Assume N (N <= 10^5) criminals are currently in Tadu City, numbered from 1 to N. And of course, at least one of them belongs to Gang Dragon, and the same for Gang Snake. You will be given M (M <= 10^5) messages in sequence, which are in the following two kinds:
1. D [a] [b]
where [a] and [b] are the numbers of two criminals, and they belong to different gangs.
2. A [a] [b]
where [a] and [b] are the numbers of two criminals. This requires you to decide whether a and b belong to a same gang.
Input
Output
Sample Input
1
5 5
A 1 2
D 1 2
A 1 2
D 2 4
A 1 4
Sample Output
Not sure yet.
In different gangs.
In the same gang. 题目大意:N 表示共有 N 个帮派;下面有 M 条个询问
有两个帮派,现在告诉你一些互相敌对的点对,然后让你判断某两个点之间的关系,并首先判两个点关系是否确定;
用并查集的思想只要两个点在一个集合里就可以了,直接用并查集然后时候在同一个集合;
AC代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
// 0 代表木有关系,1表示不同类,2代表同类
const int N = 1e5+;
int m;
int f[N],c[N];
int init()
{
for(int i=; i<=m; i++)
{
f[i] = i;
c[i] = ;
}
}
int xfind(int x)
{
if(f[x] == x)
return x;
int t = f[x];
f[x] =xfind(f[x]);
c[x] = (c[x]+c[t])%;
return f[x];
}
int solve(char ch,int x,int y )
{
int fx = xfind(x);
int fy = xfind(y);
if(fx != fy)
{
if(ch == 'A') return ; //返回值0,表示不确定
f[fx] =fy;
if((c[x]+c[y])% ==)
c[fx] = ;
}
else
{
if(ch == 'A')
{
if(c[x] != c[y]) return ; //返回值1,表示在不同的帮派
if(c[x] == c[y]) return ; //返回值2,表示在相同的帮派
}
}
if(ch == 'D') return ;//这种情况不同在考虑的
}
int main( )
{
int T,n,x,y;
char s;
scanf("%d",&T);
while(T--)
{
scanf("%d %d",&m,&n);
init(); //初始化并查集
for(int i=; i<n; i++)
{
scanf(" %c %d %d",&s,&x,&y);
int flag = solve(s,x,y);
if(flag == ) printf("Not sure yet.\n");
else if(flag == ) printf("In different gangs.\n");
else if(flag == ) printf("In the same gang.\n");
}
}
return ;
}
poj1703 Find them, Catch them(并查集的应用)的更多相关文章
- poj1703 Find them, Catch them 并查集
poj(1703) Find them, Catch them Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 26992 ...
- POJ-1703 Find them, Catch them(并查集&数组记录状态)
题目: The police office in Tadu City decides to say ends to the chaos, as launch actions to root up th ...
- POJ 1703 Find them, catch them (并查集)
题目:Find them,Catch them 刚开始以为是最基本的并查集,无限超时. 这个特殊之处,就是可能有多个集合. 比如输入D 1 2 D 3 4 D 5 6...这就至少有3个集合了.并且 ...
- poj1703--Find them, Catch them(并查集应用)
Find them, Catch them Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 32073 Accepted: ...
- POJ1703-Find them, Catch them 并查集构造
Find them, Catch them 好久没有做并查集的题,竟然快把并查集忘完了. 题意:大致是有两个监狱,n个 ...
- POJ 2236 Wireless Network ||POJ 1703 Find them, Catch them 并查集
POJ 2236 Wireless Network http://poj.org/problem?id=2236 题目大意: 给你N台损坏的电脑坐标,这些电脑只能与不超过距离d的电脑通信,但如果x和y ...
- POJ 1703 Find them, Catch them 并查集的应用
题意:城市中有两个帮派,输入中有情报和询问.情报会告知哪两个人是对立帮派中的人.询问会问具体某两个人的关系. 思路:并查集的应用.首先,将每一个情报中的两人加入并查集,在询问时先判断一下两人是否在一个 ...
- poj1703_Find them, Catch them_并查集
Find them, Catch them Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 42451 Accepted: ...
- poj.1703.Find them, Catch them(并查集)
Find them, Catch them Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I6 ...
- POJ 1703 Find them, Catch them(并查集高级应用)
手动博客搬家:本文发表于20170805 21:25:49, 原地址https://blog.csdn.net/suncongbo/article/details/76735893 URL: http ...
随机推荐
- 用CRF++开源工具做文本序列标注教程
本文只介绍如何快速的使用CRF++做序列标注,对其中的原理和训练测试参数不做介绍. 官网地址:CRF++: Yet Another CRF toolkit 主要完成如下功能: 输入 -> &qu ...
- SEO之巴莱多定律
SEO这个词在2007.2008年好像特别的火,尤其在2007年下半年至今,众多SEO爱好者发起了最大的一轮搜索引擎优化研究风暴,甚至最终逼迫百度等大型搜索引擎公司改变算法. SEO,确实能带来一些经 ...
- redis-3.28 一主二从模式介绍、主从从模式介绍、sentinel模式一主两从高可用
一.redis-3.28部署 yum install gcc tclwget http://download.redis.io/releases/redis-3.2.8.tar.gztar -zxvf ...
- unity shader 编译时间过长
去掉opengles2.0能省一半时间 换ssd Compiled shader 'Shader Forge/Scenes_Ground_Standard_M' in 315.51s gles ...
- Java笔记10:Struts2简单Demo
1 下载struts-2.3.24.1-all.zip并解压缩,位置任意,比如我的位置是D:\Download\Java\struts-2.3.24.1 解压缩D:\Download\Java\str ...
- 使用airdrop进行文件共享
使用airdrop进行文件共享 学习了: https://support.apple.com/zh-cn/HT203106 https://zh.wikihow.com/%E5%9C%A8Mac%E4 ...
- java Web开发中,Tomcat安装顺序与配置(windows7系统下)
一.要先安装JDK[比如,安装目录:D:/program Files/Java ] 注:1.JDK安装顺序可以参照百度,后期会补上 2.安装是否成功的验证方式:点击“开始”→输入“cmd”→输入“Ja ...
- mac git xcrun error active developer path 错误
一:情景: 在mac下使用git;xcode4.6的环境时,需要安装command line tools ,但是在装了xcode5之后,就不需要安装command line tools了,默认已经集成 ...
- 算法笔记_051:荷兰国旗问题(Java)
目录 1 问题描述 2 解决方案 1 问题描述 现有n个红白蓝三种不同颜色的小球,乱序排列在一起,请通过两两交换任意两个球,使得从左至右的球依次为红球.白球.蓝球.这个问题之所以叫荷兰国旗,是因为 ...
- 一次vm 虚拟机时间倒流而导致的oracle 数据库启动故障
一次vm 虚拟机时间倒流而导致的oracle 数据库启动故障 本文是原创文章.若转载请注明出处: http://blog.csdn.net/msdnchina/article/details/3878 ...