一道比较好的并查集题目:Gangs

题目描述

描述

1920年的芝加哥,出现了一群强盗。如果两个强盗遇上了,那么他们要么是朋友,要么是敌人。
而且有一点是肯定的,就是A的朋友的朋友是A的朋友;A的敌人的敌人也是A的朋友。
两个强盗是同一伙的当且仅当他们是朋友。现在给你一些关于强盗们的信息,问你至多有多少个强盗团伙。

输入

输入的第一行为N(2<=N<=1000),表示强盗的个数(从1编号到N)。
        第二行M(1<=M<=100000),表示信息条数。
        以下M行,每行可能是F p q或是E p q,分别表示p和q是朋友,或是敌人。
        假设输入不会产生矛盾

输出

输出只有一行,表示最大可能的团伙数。

样例输入

6
4
E 1 4
F 3 5
F 4 6
E 1 2

样例输出

3

解答

代码

#include <iostream>
using namespace std;
int a[1001] = {0};
int b[1001][1001] = {0};
int father(int n) {if (a[n] == -1) {return n;} elsereturn father(a[n]);
}int hb(int x, int y) {int n, m;n = father(x);m = father(y);if (n < m) {a[m] = n;} else {a[n] = m;}return 0;
}
int main() {int n, m;int i, j, k;char c;int x, y, z, p;cin >> n >> m;for (i = 1; i <= 1001; i++) {a[i] = -1;}for (i = 1; i <= m; i++) {cin >> c >> x >> y;if (c == 'E') {b[y][x] = 1;b[x][y] = 1;}if (c == 'F') {hb(x, y);}}for (i = 1; i <= n; i++)for (j = 1; j < i; j++) {if (b[i][j]) {for (k = 1; k <= n; k++) {if (b[j][k] && k < i) {hb(k, i);}}}}int s = 0;for (i = 1; i <= n; i++) {if (a[i] == -1) s++;}cout << s;system("pause");return 0;
}

Gangs(附C语言实现)相关推荐

  1. c语言计算支点距离,长安本科毕业论文设计-—三级齿轮减速器的优化设计(附c语言优化计算程序代码).doc...

    长安本科毕业论文设计--三级齿轮减速器的优化设计(附c语言优化计算程序代码) 二 ○ 一 三 届 毕 业 论 文 三级齿轮减速器的优化设计 学 院: 工程机械学院 专 业: 机械设计制造及其自动化 姓 ...

  2. c52传感器温度显示c语言编程,基于STC89C52的数字温度计 附C语言代码.doc

    基于STC89C52的数字温度计 附C语言代码 <数字显示温度计>论文 学校: 华侨大学 学院: 信息科学与工程学院 班级:10级 集成电路设计与集成系统 组别: 自控06组 组员:*** ...

  3. C++ 实现输出 n个不重复整数任取m个数的所有组合(附C语言实现)

    C++ 实现输出 n个不重复整数任取m个数的所有组合(附C语言实现) 一.简要说明 基本实现过程:先得到索引组合,再根据索引打印对应值.附C语言实现版. 二.效果图 三.例子说明 例如 6取4,声明一 ...

  4. QQ自动点赞PHP源码_QQ好友批量回名片赞工具-QQ自动点赞附易语言源码V1.0电脑版PC端回赞-西西软件下载...

    QQ自动点赞附易语言源码是一款电脑版QQ好友批量回名片赞工具下载附易语言源码和导入QQ号码方,PC端QQ回赞和源码,然后打开软件导入QQ号码即可批量赞了,每个好友可以赞10次,同时附带了源码可以编译成 ...

  5. 手把手教线性回归分析(附R语言实例)

    本文长度为8619字,建议阅读15分钟 本文为你介绍线性回归分析. 通常在现实应用中,我们需要去理解一个变量是如何被一些其他变量所决定的. 回答这样的问题,需要我们去建立一个模型.一个模型就是一个公式 ...

  6. BSTR 、LPCTSTR、CString附C语言串基本操作

    CString ,BSTR ,LPCTSTR之间关系和区别 CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指 ...

  7. PHP判断浏览器类型和浏览器语言(附各国语言简写代码)

    用php语言来判断浏览器类型其实很简单. 因为浏览器在和服务器连接时候都会先发送一些包含自己信息的内容(浏览器类型.语言啦). 这里我们主要分析的是_SERVER["HTTP_USER_AG ...

  8. 家族关系查询系统程序设计算法思路_七大查找算法(附C语言代码实现)

    来自:Poll的笔记 - 博客园 链接:http://www.cnblogs.com/maybe2030/p/4715035.html 阅读目录 1.顺序查找 2.二分查找 3.插值查找 4.斐波那契 ...

  9. 【1】刷了1000道二级C语言的题,这些题竟然还是易错题!!(附C语言完整知识点)

    @二级C语言考试 这几天我天天都在做C语言的题,从公共基础部分到C语言选择题部分,着重复习选择题部分.算下来已经刷了近1000道C语言的题了: 不过有些题明明是很简单的,却很容易错,它们容易混淆.看似 ...

最新文章

  1. sql 集合查询 数据更新操作语句
  2. 动态代理及工厂的简单实现
  3. 基于Visual C++2013拆解世界五百强面试题--题5-自己实现strstr
  4. RA维持期达标式减停生物制剂(DRESS研究)的18个月数据
  5. 《redis-php中文参考手册》-php版
  6. 时间轴 纵向_高考最新硬货!高中历史时间轴(文字版)高能来袭,背会就能多拿分!...
  7. 右键菜单_右键菜单太长会导致电脑卡顿?轻松删除右键菜单无用项
  8. 古田县争取高速公路的历程
  9. 上传文件(ajax结合form表单)
  10. mysql时间日期函数
  11. 开关电源环路的零极点可以在反馈端补偿吗_单片开关电源原理及应用
  12. Delphi Xe Web开发之 unigui入门视频教程
  13. max3232ese_【MAX3232ESE+ PDF数据手册】_中文资料_引脚图及功能_(美信 Maxim Integrated)-采芯网...
  14. Unity播放服务器端视频 发布到Android移动端
  15. 通达OA11.2漏洞复现
  16. 机械制造技术基础【3】
  17. (Android学习)点击按钮Button,更换背景颜色
  18. 华为HG8347R V3R016C10S135光猫桥接 北京联通 恢复华为原版
  19. HTML5+CSS+DIV 新海诚电影简介
  20. TLC5615 10位DA模块数模转换芯片驱动

热门文章

  1. linux格式化为fat,linux下把u盘格式化成 FAT32的例子
  2. Java语言中 (游戏:彩票)修改程序清单3-8,产生三位整数的彩票。程序提示用户输入一个三位整数,依照以下规则判定用户是否赢得奖金:
  3. 一种基于陀螺仪传感器的准确计步器算法
  4. java使用poi在word中生成柱状图、折线图、饼图、柱状图+折线图组合图、动态表格、文本替换、图片替换 springboot项目
  5. 【ROM制作工具】华为UPDATE.APP固件一键解包打包教程
  6. 【华为OD机试真题 python】连续出牌数量【2022 Q4 | 200分】
  7. uniapp中使用canvas生成海报
  8. 分享两个视频转场作品
  9. java 将字符串集合转换成字符串并以顿号隔开
  10. android pppd流程,Android pppd_gprs脚本启动过程