【图论】问题 C: 黑社会团伙
目录
题目描述
输入
输出
样例输入
样例输出
代码
题目描述
众所周知,香港的黑社会组织猖獗,警方希望能摸清他们的内部构成情况,特派小生前往调查。经过长期的卧底,小生初步获得了一些资料:整个组织有n个人,任何两个认识的人不是朋友就是敌人,而且满足:①我朋友的朋友是我的朋友;②我敌人的敌人是我的朋友。所有是朋友的人组成一个团伙。现在,警方委派你协助调查,拥有关于这n个人的m条信息(即某两个人是朋友,或某两个人是敌人),请你计算出这个城市最多可能有多少个团伙。
数据范围:2≤N≤2000,1≤M≤5000。
输入
第一行包含一个整数N,第二行包含一个整数M,接下来M行描述M条信息,内容为以下两者之一:“F x y”表示x与y是朋友;“E x y”表示x与y是敌人(1≤x≤y≤N)。
输出
包含一个整数,即可能的最大团伙数。
样例输入
6
4
E 1 4
F 3 5
F 4 6
E 1 2
样例输出
3
代码
#include<bits/stdc++.h>
using namespace std;
int set1[10001]; // 并查集数组
int rank1[10001]; // 秩数组
int data[10001];
int con[10001];
bool cmp(int a, int b)
{ return a > b;
}
void Make_Set(int i) // 初始化集合
{ set1[i] = i; rank1[i] = 0;
}
int Find1(int i) // 查找集合代表元
{ if (set1[i] == i) return set1[i];return Find1(set1[i]);
}
void Union(int i, int j) // 合并集合
{ i = Find1(i);j = Find1(j);if (i == j) return;if (rank1[i] > rank1[j]) // 按秩合并set1[j] = i;else { if (rank1[i] == rank1[j]) rank1[j]++; set1[i] = j; }
}
int main()
{ int n, m, x, y;char a;int i, j;scanf("%d%d", &n, &m); // 输入点数和操作数for (i = 1; i <= n * 2; i++) { Make_Set(i); // 初始化n*2个集合} for (i = 1; i <= m; i++) { cin >> a;scanf("%d%d", &x, &y);if (a == 'F') // 朋友关系合并集合Union(x, y);if (a == 'E') // 敌人关系合并集合{ Union(x, y + n); Union(y, x + n); }} int step, ans = 0;for (i = 1; i <= n * 2; i++) // 查找每个点所在集合con[i] = Find1(i);sort(con, con + n + 1, cmp); // 降序排序for (i = 1; i <= n; i++) // 统计不同集合个数{ if (con[i] != con[i - 1]) ans++; } printf("%d", ans); // 输出不同集合总数
}
【图论】问题 C: 黑社会团伙相关推荐
- 黑社会团伙(并查集)
题目描述 众所周知,香港的黑社会组织猖獗,警方希望能摸清他们的内部构成情况,特派小生前往调查.经过长期的卧底,小生初步获得了一些资料:整个组织有n个人,任何两个认识的人不是朋友就是敌人,而且满足:①我 ...
- 了解黑客的关键工具---揭开Shellcode的神秘面纱
2019独角兽企业重金招聘Python工程师标准>>> ref: http://zhaisj.blog.51cto.com/219066/61428/ 了解黑客的关键工具---揭开 ...
- 神话人物的现代版简历
她丈夫在河北当建筑工人,工程塌方,被砸死在下面.她要求赔偿,包工头不肯.她起诉到法院,败诉.她上诉,再次败诉.她只好上访,从山东一次次来到河北,当局抓她,关她,在精神病院喂她吃药.她逃了出来,上网求助 ...
- 西游记采访实录(玉帝访谈录)
寒冰:请问玉帝阁下,您为何选派唐僧去西天取经? 玉帝:名为取经,实为反腐败.我先向你介绍一下西天取经的班子成员吧.你知道,那个猪八戒,房产商出身,在他一无文凭.二无政绩.年龄偏大,脑袋又时常进 ...
- 笑一笑-道高一尺魔高一丈
话说在世界杯上中国队惨败而归,国内舆论大哗,传言因赌球赔了钱,某黑社会团伙要杀害国家队全体成员,本来胆子就小的 孙继海尤其害怕,于是想了个主意把自己装扮成金发美女逃离酒店,他看到街边一个老丐婆,就给了 ...
- 【转载】一封写给有忧国忧民症状的幼稚知识分子的信
我一直觉得, 我不应该来到这个世界 回忆一下 浪费时间 浪费食物 浪费阳光 我并没有创造什么 我一直希望解脱 解脱 确又不甘心 于是 就这样 苟且的或者 也许 我应该记录 下面 是拷贝过来 我应该认真 ...
- OSChina 周三乱弹 —— 我不是长耳朵的猕猴桃
Osc乱弹歌单(2019)请戳(这里) [今日歌曲] @巴拉迪维 :You're in the arms of the angel, may you find some comfort here. # ...
- 【PAT】06 图论
第六章 图论 AcWing 1475. 紧急情况 问题描述 问题链接:AcWing 1475. 紧急情况.原题链接 分析 本题相当于给定我们一个无向图,让我们求两点之间最短路径的数量.并从这些最短路径 ...
- 一笔画问题【数据结构-图论】
回家路上听到2个人在说:田字怎么一笔写成,并且笔划不重复. 田 我回家想了许久,觉得无论如何走正常的途径肯定是不行的,投机取巧脑筋急转弯的我不讨论. 那么是否可以找到数学定理? 其实就是欧拉七桥问题: ...
最新文章
- 布局类型java_java – 我们可以为所有屏幕大小制作一种布局类型
- Storm 1.1.0 集群安装
- python简单爬虫入门一_Python爬虫快速入门:基本结构简单实例
- golang 关闭gc 并手动gc_Golang 防内存泄漏编码原则
- (转载)虚幻引擎3--【UnrealScript教程】章节一:6.int和float
- 九款Web服务器性能压力测试工具
- .net开通exchange邮箱
- 真·杂项:资本论阅读笔记(随缘更新)
- 动态规划之流水作业调度问题
- leetcode(Array)---11,盛最多水的容器
- 1004 - treap - 宠物收养所
- 将工业ISM和消费者ISM频段设备迁移到LoRaWAN,LoRa设备开发参考指南(二十)
- 用Python批量从本地导数据到postgres数据库,比人工导入快十倍,爽
- SSM+网上书城系统 毕业设计-附源码180919
- 关于阴阳师日和坊的快速刷出方法以及相关思考
- 天才小毒妃 第914章 无论如何要带她走
- 和量子计算有什么区别 并发_超级计算机和量子计算机有什么区别?
- 一个感人的爱情故事(中英对照)
- 【定时任务】xxl-job框架学习笔记
- Win10 64位+VS2015+Opencv3.3.0安装配置
热门文章
- 【微信小程序】如何获取微信小程序云开发数据库的数据并渲染到页面?
- 第一个应用:鸢尾花分类
- Linux切换超级用户认证失败,Linux切换root超级用户问题
- 中国各地理分界线高清图
- 测试经理的3个月试用期转正报告
- Python基础《十一:mysql数据库》
- GoldenGate 日常监控
- ApeWorX: 新的基于 Python 语言的智能合约开发框架
- 移动端小程序阻止手机返回键返回到上一页
- web前端期末大作业:文化网站设计——中国风文化html源码(6个页面) HTML+CSS+JavaScript...