题意:在这个城市里有两个黑帮团伙,现在给出N个人,问任意两个人他们是否在同一个团伙
输入D x y代表x于y不在一个团伙里
输入A x y要输出x与y是否在同一团伙或者不确定他们在同一个团伙里

链接:点我

 1 #include <stdio.h>
 2 #include <algorithm>
 3 #include <iostream>
 4 #include <string.h>
 5 using namespace std;
 6
 7 const int MAXN=100010;
 8 int F[MAXN];
 9 int val[MAXN];
10 int find(int x)
11 {
12     if(F[x]==-1)return x;
13     int tmp=find(F[x]);
14     val[x]=(val[x]+val[F[x]])%2;
15     return F[x]=tmp;
16 }
17 void bing(int x,int y)
18 {
19     int t1=find(x);
20     int t2=find(y);
21     if(t1!=t2)
22     {
23         F[t1]=t2;
24         val[t1]=(val[y]-val[x]+1)%2;
25     }
26 }
27 int main()
28 {
29     int T;
30     char str[10];
31     int u,v;
32     int n,m;
33     scanf("%d",&T);
34     while(T--)
35     {
36         scanf("%d%d",&n,&m);
37         memset(F,-1,sizeof(F));
38         memset(val,0,sizeof(val));
39         while(m--)
40         {
41             scanf("%s%d%d",&str,&u,&v);
42             if(str[0]=='A')
43             {
44                 if(find(u)!=find(v))
45                 {//题目说两个集团至少有一个人,所以N==2的时候单独考虑,但是不考虑这个也可以AC,估计没有这样的数据
46                     if(n==2)printf("In different ganges.\n");
47                     else printf("Not sure yet.\n");
48                 }
49                 else
50                 {
51                     if(val[u]!=val[v])printf("In different gangs.\n");
52                     else printf("In the same gang.\n");
53                 }
54             }
55             else
56             {
57                 bing(u,v);
58             }
59         }
60     }
61     return 0;
62 }

转载于:https://www.cnblogs.com/cnblogs321114287/p/4477607.html

poj 1703 并查集相关推荐

  1. poj 3310(并查集判环,图的连通性,树上最长直径路径标记)

    题目链接:http://poj.org/problem?id=3310 思路:首先是判断图的连通性,以及是否有环存在,这里我们可以用并查集判断,然后就是找2次dfs找树上最长直径了,并且对树上最长直径 ...

  2. poj 2985(并查集+线段树求K大数)

    解题思路:这道题并查集很容易,合并时找到父节点就直接加上去就ok了.关键是如何求K大数,我一直在想用线段树怎么写,一开始想如果直接记录数的大小那肯定是没戏了,借鉴了一下别人的思路:区间[a,b]记录的 ...

  3. poj 1988(并查集)

    题意:进行m次操作,M x y 将包含x的集合移动到y上面,C x, 计算x下面有几个元素. 解题思路:这道题很容易想到用并查集,但是这里有点绕:最开始我想到的是建立一个num[x],表示x以下的节点 ...

  4. POJ 2492 并查集,带权或带偏移量并查集 【例题详解】

    分析这道题,我们可以得出,假如a,b,c三只虫子,a和b可以交配,b和c也可以交配,那么a和c一定是同行,因为他们和同一个异性交配了.所以我们可以把关系抽象成图,在ab之间,bc之间各连一条线长度为1 ...

  5. openoj的一个小比赛(J题解题报告)poj1703(并查集)

    http://openoj.awaysoft.com:8080/judge/contest/view.action?cid=47#problem/J http://poj.org/problem?id ...

  6. Poj(1703),种类并查集

    题目链接:http://poj.org/problem?id=1703 已经不是第一次接触种类并查集了,直到今天才搞懂. 感谢红黑联盟,感谢杰哥!!! 每个节点只要关系确定,不管是不是同一个集合里面, ...

  7. POJ 1703 Find them, Catch them(并查集高级应用)

    POJ 1703 Find them, Catch them(并查集高级应用) 手动博客搬家:本文发表于20170805 21:25:49, 原地址https://blog.csdn.net/sunc ...

  8. POJ 1703 Find them, Catch them(路径压缩并查集)

    POJ 1703 Find them, Catch them(路径压缩并查集) 2014年03月11日 20:13:54 阅读数:881 POJ 1703 Find them, Catch them( ...

  9. 【POJ - 1703】Find them, Catch them(带权并查集之--种类并查集 权为与父节点关系)

    题干: Find them, Catch them Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 36176   Accep ...

最新文章

  1. 硬盘老大哥被曝豪掷200亿美元,要收了全球第二大闪存芯片厂,外媒:半导体行业秩序要变...
  2. CF293B Distinct Paths题解
  3. 安卓高级6 拍照或者从相册获取图片 并检测旋转角度或者更新画册扫描
  4. [Python图像处理] 二十五.图像特效处理之素描、怀旧、光照、流年以及滤镜特效
  5. 基于WebSocket的手机应用和浏览器应用的数据传递
  6. 数据库备份需要注意的
  7. sql server2016里面的json功能 - 转
  8. 2013_changsha_onsite
  9. C语言里面具有外部链接的静态变量这里的链接是什么意思
  10. 转盘抽奖的案例-----
  11. 浏览器辅助神器:油猴脚本使用教程
  12. 使用Java操作Redis
  13. 通俗理解贝叶斯,全概率定理
  14. iSlide2022免费PPT插件(包含众多PPT模板/素材)
  15. django oscar_赢得奥斯卡奖之后会发生什么
  16. NFS搭建错误处理:exportfs:No options for /home/source/*(rw,sync,no_root_squash):suggest(sync) to avoid warn
  17. 初识Cpp之 六、内存分配
  18. 长篇好文:提问的智慧
  19. 特别策划|5G最新进展深度解析2022版—全球市场篇(32页附下载)
  20. java 网页编码_JAVA如何判断网页编码

热门文章

  1. cloc工具 linux,Linux下源代码行数统计工具(sloccount,cloc等)
  2. [leetcode]5178. 四因数
  3. 实验4 数据库的连接查询
  4. 若在一分页存储管理系统中,某作业的页表如表所示。已知页面大小为 1024字节,试将逻辑地址 1011,2148,3000,4000,5012转化为相应的物理地址。
  5. Pikachu实验重现2(Sql的注入)
  6. UnityShader22:序列帧动画
  7. 指针和引用的相同与不同
  8. bzoj 1698: [Usaco2007 Feb]Lilypad Pond 荷叶池塘(BFS)
  9. 【paper and code】StarGAN
  10. R中安装LightGBM(Windows 64位)