BZOJ1370 [Baltic2003]Gang团伙
20多天没写题啊。。。连键盘长什么样都忘了额。。。
用这道并查集水题练手2333
![](/assets/blank.gif)
![](/assets/blank.gif)
1 /************************************************************** 2 Problem: 1370 3 User: rausen 4 Language: C++ 5 Result: Accepted 6 Time:36 ms 7 Memory:816 kb 8 ****************************************************************/ 9 10 #include <cstdio> 11 #include <algorithm> 12 13 using namespace std; 14 const int N = 1005; 15 16 int n, m, ans; 17 int fa[N << 1], a[N]; 18 19 int read() { 20 int x = 0; 21 char ch = getchar(); 22 while (ch < '0' || '9' < ch) 23 ch = getchar(); 24 while ('0' <= ch && ch <= '9') 25 (x *= 10) += ch - '0', ch = getchar(); 26 return x; 27 } 28 29 int find_fa(int x) { 30 return x == fa[x] ? x : fa[x] = find_fa(fa[x]); 31 } 32 33 int main() { 34 int i, x, y; 35 char st[5]; 36 n = read(), m = read(); 37 for (i = 1; i <= n * 2; ++i) fa[i] = i; 38 for (i = 1; i <= m; ++i) { 39 scanf("%s", st); 40 x = read(), y = read(); 41 if (st[0] == 'F') 42 fa[find_fa(x)] = find_fa(y); 43 else fa[find_fa(x)] = find_fa(y + n), fa[find_fa(y)] = find_fa(x + n); 44 } 45 for (i = 1; i <= n; ++i) 46 a[i] = find_fa(i); 47 sort(a + 1, a + n + 1); 48 for (i = 1; i <= n; ++i) 49 if (a[i] == 1 || a[i] != a[i - 1]) 50 ++ans; 51 printf("%d\n", ans); 52 return 0; 53 }
View Code
转载于:https://www.cnblogs.com/rausen/p/4253763.html
BZOJ1370 [Baltic2003]Gang团伙相关推荐
- 【bzoj1370】[Baltic2003]Gang团伙 并查集
题目描述 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: 1. 我朋友的朋友是我的朋友: 2. 我敌人的敌人是我的朋友: 所有是朋友的人组成一个团伙.告诉你关于这n个人的m条信息, ...
- 【Baltic2003】【BZOJ1370】Gang团伙(并查集,拆点)
problem 给定n个人 朋友的朋友是朋友,敌人的敌人是朋友 朋友之间组成一个团伙,求团伙数 solution 将每个点x拆成两个:x和x+n(分别表示x的朋友和敌人) 如果x和y是朋友,就将x和y ...
- BZOJ 1370: [Baltic2003]Gang团伙 [并查集 拆点 | 种类并查集WA]
题意: 朋友的朋友是朋友,敌人的敌人是朋友:朋友形成团伙,求最多有多少团伙 种类并查集WA了一节课,原因是,只有那两种关系才成立,诸如朋友的敌人是朋友之类的都不成立! 所以拆点做吧 #include ...
- 团伙 并查集_BZOJ 1370 Baltic2003 Gang团伙 并查集
题目大意:给定n个人,朋友的朋友是朋友,敌人的敌人是朋友,朋友之间组成一个团伙,求团伙数 将每个点x拆成两个:x和x+n 如果x和y是朋友,就将x和y合并 如果x和y是敌人,就将x和y+n合并,将y和 ...
- [颓废史]蒟蒻的刷题记录
QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...
- 关押罪犯(并查集加点问题最详细讲解)
关押罪犯 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气值&q ...
- BZOJ1370洛谷P1892 [BOI2003]团伙
并查集 我们将a的敌人定义为a+n,b的敌人的定义为b+n,所以a与b+n是一类人,b与a+n是一类人,然后就这么合并就好了 代码 //By AcerMo #include<cmath> ...
- PAT1034 Head of a Gang (30)(并查集)
题意: 给出n次通话记录,当通话的人数超过2人并且通话总时长超过k时,这些人就是犯罪团伙,其中通话时间最大的人是头目,要求按字母序输出头目和团伙人数 思路: 就是并查集,将两两通话的人关联在一起,因为 ...
- 【PAT - 甲级1034】Head of a Gang (30分)(并查集)
题干: One way that the police finds the head of a gang is to check people's phone calls. If there is a ...
最新文章
- 微软职位内部推荐-Principal Dev Manager
- An overview of gradient descent optimization algorithms
- deepin 15.11 docker 安装命令
- 完全用 gnu/linux 工作,怎样完全用 GNU/Linux 工作
- mysql和oracle 开源_MySQL和oracle比较
- 安卓手机如何防盗_iphone手机换成安卓手机后如何转移便签备忘录数据?
- 计算机系统定期验证,计算机化系统验证基本原则
- 【转】用java将pdf转换成jpg图片的代码
- 图说: 量子物理学的主要内容
- matlab 求信号频率响应,基于MATLAB的频率响应
- 企业竞争力分析及综合评价体系的构建
- Creational patterns
- 华硕ASUS手机平板官方刷机包raw格式解压修改工具
- mysql8设置局域网访问
- 8. 面向对象 -- 继承
- 【ORA-00257:archiver error. Connect internal only, until freed;清理归档日志】
- 物联网漏洞挖掘入门--DLINK-DIR-645路由器栈溢出漏洞分析复现
- emoji mysql 转 unicode_如何转义emoji表情,让它可以存入utf8的数据库?
- 网络教育统考计算机计算总和,【重要】2018年教育部统考办1号文件,全国网络教育本科统考大变革...
- 一个平凡的外国人,却对中国大爱无疆
热门文章
- Centos挂载新硬盘开机自动挂载
- jenkins-邮件通知
- 零基础快速开发全栈后台管理系统(Vue3+ElementPlus+Koa2)—项目概述篇(一)
- Error: Plugin/Preset files are not allowed to export objects, only functions……
- 一篇文章教你学会实现模糊搜索结果的关键词高亮显示
- python信用评分卡_基于Python的信用评分卡模型分析(二)
- 整合Swagger接口文档
- 2.5D屏幕有什么好处?
- 冰心的作品有哪些?聊一聊冰心都有哪些作品?
- 什么是内容电商?核心是“内容”