BZOJ1370洛谷P1892 [BOI2003]团伙
并查集
我们将a的敌人定义为a+n,b的敌人的定义为b+n,所以a与b+n是一类人,b与a+n是一类人,然后就这么合并就好了
代码
//By AcerMo
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int M=2050;
int n,m;
int siz[M],fa[M];
inline int read()
{int x=0;char ch=getchar();while (ch>'9'||ch<'0') ch=getchar();while (ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();return x;
}
inline int find(int x)
{if (x!=fa[x]) return fa[x]=find(fa[x]);return x;
}
inline void constt()
{for (int i=1;i<=n*2;i++) fa[i]=i,siz[i]=1;return ;
}
signed main()
{n=read();m=read();constt();while (m--){char ch[3];scanf("%s",ch);int x=read(),y=read();int r1=find(x),r2=find(y);if (ch[0]=='E'){int r3=find(x+n);int r4=find(y+n);fa[r3]=r2;fa[r4]=r1;}else fa[r1]=r2;}int cnt=0;for (int i=1;i<=n;i++) if (find(i)==i) cnt++;cout<<cnt;return 0;
}
BZOJ1370洛谷P1892 [BOI2003]团伙相关推荐
- 洛谷 P1892 [BOI2003]团伙(并查集变种 反集)
[BOI2003]团伙 题目描述 现在有 n n n 个人,他们之间有两种关系:朋友和敌人.我们知道: 一个人的朋友的朋友是朋友 一个人的敌人的敌人是朋友 现在要对这些人进行组团.两个人在一个团体内当 ...
- 洛谷P1892 [BOI2003]团伙
链接:P1892 题目描述 1920年的芝加哥,出现了一群强盗.如果两个强盗遇上了,那么他们要么是朋友,要么是敌人.而且有一点是肯定的,就是: 我朋友的朋友是我的朋友: 我敌人的敌人也是我的朋友. 两 ...
- 精讲并查集经典习题:P1892 [BOI2003]团伙(超详细)
一,需要开o2才能AC的代码 用emys[i]存储第i个人的敌人数,vector<long long>emyr[i]存储i个人的所以敌人,fa[i]存储第i个人的大boss. 1.初始化 ...
- 并查集——团伙(洛谷 P1892)
题目选自洛谷P1892 最基础的并查集是给出关系直接合并,这道题呢稍微多了一些条件,就是敌人的敌人也是自己的朋友,所以在合并的时候多了几步操作. 首先,要充分理解题目. "敌人的敌人就是朋友 ...
- P1892 [BOI2003]团伙(反集)
P1892 [BOI2003]团伙 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 现在有 nn 个人,他们之间有两种关系:朋友和敌人.我们知道: 一个人的朋友的朋友是朋友 ...
- 洛谷P4322 最佳团伙(树上dp)
题目描述 洛谷传送门 题目描述 JSOI 信息学代表队一共有 N 名候选人,这些候选人从 1 到 N 编号.方便起见,JYY 的编号是 0 号.每个候选人都由一位编号比他小的候选人Ri推荐.如果 Ri ...
- [luogu p1892] [BOI2003]团伙
传送门 [BOI2003]团伙 题目描述 给定 \(n\) 个人,他们之间有两个种关系,朋友与敌对.可以肯定的是: 与我的朋友是朋友的人是我的朋友 与我敌对的人有敌对关系的人是我的朋友 现在这 \(n ...
- 洛谷P1892.团伙
传送门 题目描述 给定 n个人,他们之间有两个种关系,朋友与敌对.可以肯定的是: 与我的朋友是朋友的人是我的朋友 与我敌对的人有敌对关系的人是我的朋友 现在这 n个人进行组团,两个人在一个团队内当且仅 ...
- P1892 [BOI2003]团伙(并查集,反集)难度⭐⭐★
题目链接 反集 如果a和b是敌人,合并n+b和a,n+a和b 如果c和a是敌人,合并n+c和a,n+a和c 那么b和c自然就合并在一起了 这样就符合了题目敌人的敌人是朋友的规则 注意 并查集不要忘了初 ...
最新文章
- 机器学习算法集锦:从贝叶斯到深度学习及各自优缺点
- 2017 年 VR 将走的 3 个方向 你更认可哪一个?
- memcpy,_tcscpy_s的使用
- 20应用统计考研复试要点(part29)--论述题及面试题
- 如何把一个网页生成一个快捷方式在桌面?_如何打造一个简洁、高效的桌面?
- Airflow 中文文档:时区
- 关于Aspose对于Word操作的一些扩展及思考
- fiddler弱网测试_用fiddler实现弱网测试
- 摄影测量学——空间后方交会
- php单例模式的实现方式,PHP之单例模式的实现
- linux 进程 cpu 100,清理linux中占用CPU 100%的病毒
- C++编程 Unicode转换成中文
- 金山词霸2006专业版(300M)的无法屏幕取词问题的解决方法!
- java加入md5_javamd5加密解密
- adventureworks mysql_AdventureWorks2012
- 光纤上网是如何实现的?—Vecloud微云
- CTF-bacon(培根密码)
- 使用MD5加密的登陆demo
- 哈代:数学家一生是少年
- Vue 添加组件和跳转