博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1703 Find them, Catch them 并查集
阅读量:5790 次
发布时间:2019-06-18

本文共 945 字,大约阅读时间需要 3 分钟。

题意:给你t组数据,每组数据给你编号为1-n的坏人,这些坏人要么属于团伙A,要么属于团伙B,然后给你m次操作:

   A操作:询问x和y是不是同一个团伙

   D操作:告诉你x和y不是同一个团伙

 

思路:和POJ 1182 食物链是一样的。

 

AC代码:

#include 
#include
using namespace std;const int MAX_N = 200005;int t,n,m,fa[MAX_N],x,y;char op[2];int find(int x){ if(x == fa[x]) return x; else return fa[x] = find(fa[x]);}void unite(int x, int y){ x = find(x); y = find(y); if(x == y) return; fa[x] = y;}bool same(int x, int y){ return find(x) == find(y);}void init(){ for(int i = 1; i <= n*2; i++) fa[i] = i, opp[i] = 0;}void solve(){ while(m--) { scanf("%s %d %d", op, &x, &y); if(op[0] == 'A') { if(same(x,y)) puts("In the same gang."); else if(same(x,y+n)) puts("In different gangs."); else puts("Not sure yet."); }else { unite(x,y+n); unite(x+n,y); } }}int main(){ scanf("%d", &t); while(t--) { scanf("%d %d", &n, &m); init(); solve(); } return 0;}

  

 

转载于:https://www.cnblogs.com/sevenun/p/5484049.html

你可能感兴趣的文章
Python version 2.7 required, which was not foun...
查看>>
context:annotation-config vs component-scan
查看>>
经典sql
查看>>
CSS3边框会动的信封
查看>>
JavaWeb实例设计思路(订单管理系统)
查看>>
source insight中的快捷键总结
查看>>
PC-IIS因为端口问题报错的解决方法
查看>>
java四种线程池简介,使用
查看>>
ios View之间的切换 屏幕旋转
查看>>
typedef BOOL(WINAPI *MYFUNC) (HWND,COLORREF,BYTE,DWORD);语句的理解
查看>>
jsp 特殊标签
查看>>
[BZOJ] 1012 [JSOI2008]最大数maxnumber
查看>>
gauss消元
查看>>
多线程-ReentrantLock
查看>>
数据结构之链表与哈希表
查看>>
IIS7/8下提示 HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求...
查看>>
http返回状态码含义
查看>>
响应式网站对百度友好关键
查看>>
洛谷P2179 骑行川藏
查看>>
(十八)js控制台方法
查看>>