poj 1703 并查集
题意:在这个城市里有两个黑帮团伙,现在给出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 并查集相关推荐
- poj 3310(并查集判环,图的连通性,树上最长直径路径标记)
题目链接:http://poj.org/problem?id=3310 思路:首先是判断图的连通性,以及是否有环存在,这里我们可以用并查集判断,然后就是找2次dfs找树上最长直径了,并且对树上最长直径 ...
- poj 2985(并查集+线段树求K大数)
解题思路:这道题并查集很容易,合并时找到父节点就直接加上去就ok了.关键是如何求K大数,我一直在想用线段树怎么写,一开始想如果直接记录数的大小那肯定是没戏了,借鉴了一下别人的思路:区间[a,b]记录的 ...
- poj 1988(并查集)
题意:进行m次操作,M x y 将包含x的集合移动到y上面,C x, 计算x下面有几个元素. 解题思路:这道题很容易想到用并查集,但是这里有点绕:最开始我想到的是建立一个num[x],表示x以下的节点 ...
- POJ 2492 并查集,带权或带偏移量并查集 【例题详解】
分析这道题,我们可以得出,假如a,b,c三只虫子,a和b可以交配,b和c也可以交配,那么a和c一定是同行,因为他们和同一个异性交配了.所以我们可以把关系抽象成图,在ab之间,bc之间各连一条线长度为1 ...
- openoj的一个小比赛(J题解题报告)poj1703(并查集)
http://openoj.awaysoft.com:8080/judge/contest/view.action?cid=47#problem/J http://poj.org/problem?id ...
- Poj(1703),种类并查集
题目链接:http://poj.org/problem?id=1703 已经不是第一次接触种类并查集了,直到今天才搞懂. 感谢红黑联盟,感谢杰哥!!! 每个节点只要关系确定,不管是不是同一个集合里面, ...
- POJ 1703 Find them, Catch them(并查集高级应用)
POJ 1703 Find them, Catch them(并查集高级应用) 手动博客搬家:本文发表于20170805 21:25:49, 原地址https://blog.csdn.net/sunc ...
- 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( ...
- 【POJ - 1703】Find them, Catch them(带权并查集之--种类并查集 权为与父节点关系)
题干: Find them, Catch them Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 36176 Accep ...
最新文章
- 硬盘老大哥被曝豪掷200亿美元,要收了全球第二大闪存芯片厂,外媒:半导体行业秩序要变...
- CF293B Distinct Paths题解
- 安卓高级6 拍照或者从相册获取图片 并检测旋转角度或者更新画册扫描
- [Python图像处理] 二十五.图像特效处理之素描、怀旧、光照、流年以及滤镜特效
- 基于WebSocket的手机应用和浏览器应用的数据传递
- 数据库备份需要注意的
- sql server2016里面的json功能 - 转
- 2013_changsha_onsite
- C语言里面具有外部链接的静态变量这里的链接是什么意思
- 转盘抽奖的案例-----
- 浏览器辅助神器:油猴脚本使用教程
- 使用Java操作Redis
- 通俗理解贝叶斯,全概率定理
- iSlide2022免费PPT插件(包含众多PPT模板/素材)
- django oscar_赢得奥斯卡奖之后会发生什么
- NFS搭建错误处理:exportfs:No options for /home/source/*(rw,sync,no_root_squash):suggest(sync) to avoid warn
- 初识Cpp之 六、内存分配
- 长篇好文:提问的智慧
- 特别策划|5G最新进展深度解析2022版—全球市场篇(32页附下载)
- java 网页编码_JAVA如何判断网页编码
热门文章
- cloc工具 linux,Linux下源代码行数统计工具(sloccount,cloc等)
- [leetcode]5178. 四因数
- 实验4 数据库的连接查询
- 若在一分页存储管理系统中,某作业的页表如表所示。已知页面大小为 1024字节,试将逻辑地址 1011,2148,3000,4000,5012转化为相应的物理地址。
- Pikachu实验重现2(Sql的注入)
- UnityShader22:序列帧动画
- 指针和引用的相同与不同
- bzoj 1698: [Usaco2007 Feb]Lilypad Pond 荷叶池塘(BFS)
- 【paper and code】StarGAN
- R中安装LightGBM(Windows 64位)