目录

题目描述

输入

输出

样例输入

样例输出

代码


题目描述

众所周知,香港的黑社会组织猖獗,警方希望能摸清他们的内部构成情况,特派小生前往调查。经过长期的卧底,小生初步获得了一些资料:整个组织有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: 黑社会团伙相关推荐

  1. 黑社会团伙(并查集)

    题目描述 众所周知,香港的黑社会组织猖獗,警方希望能摸清他们的内部构成情况,特派小生前往调查.经过长期的卧底,小生初步获得了一些资料:整个组织有n个人,任何两个认识的人不是朋友就是敌人,而且满足:①我 ...

  2. 了解黑客的关键工具---揭开Shellcode的神秘面纱

    2019独角兽企业重金招聘Python工程师标准>>> ref:  http://zhaisj.blog.51cto.com/219066/61428/ 了解黑客的关键工具---揭开 ...

  3. 神话人物的现代版简历

    她丈夫在河北当建筑工人,工程塌方,被砸死在下面.她要求赔偿,包工头不肯.她起诉到法院,败诉.她上诉,再次败诉.她只好上访,从山东一次次来到河北,当局抓她,关她,在精神病院喂她吃药.她逃了出来,上网求助 ...

  4. 西游记采访实录(玉帝访谈录)

    寒冰:请问玉帝阁下,您为何选派唐僧去西天取经?     玉帝:名为取经,实为反腐败.我先向你介绍一下西天取经的班子成员吧.你知道,那个猪八戒,房产商出身,在他一无文凭.二无政绩.年龄偏大,脑袋又时常进 ...

  5. 笑一笑-道高一尺魔高一丈

    话说在世界杯上中国队惨败而归,国内舆论大哗,传言因赌球赔了钱,某黑社会团伙要杀害国家队全体成员,本来胆子就小的 孙继海尤其害怕,于是想了个主意把自己装扮成金发美女逃离酒店,他看到街边一个老丐婆,就给了 ...

  6. 【转载】一封写给有忧国忧民症状的幼稚知识分子的信

    我一直觉得, 我不应该来到这个世界 回忆一下 浪费时间 浪费食物 浪费阳光 我并没有创造什么 我一直希望解脱 解脱 确又不甘心 于是 就这样 苟且的或者 也许 我应该记录 下面 是拷贝过来 我应该认真 ...

  7. OSChina 周三乱弹 —— 我不是长耳朵的猕猴桃

    Osc乱弹歌单(2019)请戳(这里) [今日歌曲] @巴拉迪维 :You're in the arms of the angel, may you find some comfort here. # ...

  8. 【PAT】06 图论

    第六章 图论 AcWing 1475. 紧急情况 问题描述 问题链接:AcWing 1475. 紧急情况.原题链接 分析 本题相当于给定我们一个无向图,让我们求两点之间最短路径的数量.并从这些最短路径 ...

  9. 一笔画问题【数据结构-图论】

    回家路上听到2个人在说:田字怎么一笔写成,并且笔划不重复. 田 我回家想了许久,觉得无论如何走正常的途径肯定是不行的,投机取巧脑筋急转弯的我不讨论. 那么是否可以找到数学定理? 其实就是欧拉七桥问题: ...

最新文章

  1. 布局类型java_java – 我们可以为所有屏幕大小制作一种布局类型
  2. Storm 1.1.0 集群安装
  3. python简单爬虫入门一_Python爬虫快速入门:基本结构简单实例
  4. golang 关闭gc 并手动gc_Golang 防内存泄漏编码原则
  5. (转载)虚幻引擎3--【UnrealScript教程】章节一:6.int和float
  6. 九款Web服务器性能压力测试工具
  7. .net开通exchange邮箱
  8. 真·杂项:资本论阅读笔记(随缘更新)
  9. 动态规划之流水作业调度问题
  10. leetcode(Array)---11,盛最多水的容器
  11. 1004 - treap - 宠物收养所
  12. 将工业ISM和消费者ISM频段设备迁移到LoRaWAN,LoRa设备开发参考指南(二十)
  13. 用Python批量从本地导数据到postgres数据库,比人工导入快十倍,爽
  14. SSM+网上书城系统 毕业设计-附源码180919
  15. 关于阴阳师日和坊的快速刷出方法以及相关思考
  16. 天才小毒妃 第914章 无论如何要带她走
  17. 和量子计算有什么区别 并发_超级计算机和量子计算机有什么区别?
  18. 一个感人的爱情故事(中英对照)
  19. 【定时任务】xxl-job框架学习笔记
  20. Win10 64位+VS2015+Opencv3.3.0安装配置

热门文章

  1. 【微信小程序】如何获取微信小程序云开发数据库的数据并渲染到页面?
  2. 第一个应用:鸢尾花分类
  3. Linux切换超级用户认证失败,Linux切换root超级用户问题
  4. 中国各地理分界线高清图
  5. 测试经理的3个月试用期转正报告
  6. Python基础《十一:mysql数据库》
  7. GoldenGate 日常监控
  8. ApeWorX: 新的基于 Python 语言的智能合约开发框架
  9. 移动端小程序阻止手机返回键返回到上一页
  10. web前端期末大作业:文化网站设计——中国风文化html源码(6个页面) HTML+CSS+JavaScript...