小生的好友列表里有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)。

输出
包含一个整数,即可能的最大“帮派”数。

输入样例
Copy
6
4
E 1 4
F 3 5
F 4 6
E 1 2
输出样例
Copy
3

#include <bits/stdc++.h>
using namespace std;int father[2005],enemy[2005];void init(int n)//初始化
{for(int i=0;i<=n;i++){father[i]=i;enemy[i]=-1;}
}
int find(int a)//找根节点
{if(father[a]==a)return a;else{a=father[a];find(a);}
}
void mercy(int a,int b)//合并
{if(find(a)!=find(b)){father[find(b)]=find(a);}
}
int main()
{int n,m,a,b;char c;cin>>n;cin>>m;init(n);for(int i=0;i<m;i++){cin>>c>>a>>b;if(c=='F'){mercy(a,b);// cout<<"合并:"<<a<<" "<<b<<endl;}else{if(enemy[a]!=-1){mercy(enemy[a],b);// cout<<"合并enea:"<<enemy[a]<<" "<<b<<endl;}if(enemy[b]!=-1){mercy(enemy[b],a);//cout<<"合并eb:"<<enemy[b]<<" "<<b<<endl;}else if(enemy[a]==-1&&enemy[b]==-1){enemy[a]=b;enemy[b]=a;}}}int count_g=0;for(int i=1;i<=2000;i++){if(father[i]==i)count_g++;}cout<<count_g;return 0;}

并查集(初始化、找根结点(头头)、合并帮派(入伙))
是朋友就合并。
是敌人的敌人就合并。(如果两个人是敌人,就看他们各自有没有除彼此之外的敌人,如果有,就将对方与自己敌人合并)。
最后,看有几个根结点,有几个,就有几个帮派。

奇怪的朋友圈(并查集)相关推荐

  1. 九度OJ 朋友圈 并查集

    题目描述: 假如已知有n个人和m对好友关系(存于数字r).如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈. 假如:n = ...

  2. 京东回应「被薅 7000 万、项目组全体开除」;微信朋友圈屏蔽支付宝集五福;MySQL 8.0.19 发布 | 极客头条...

    整理 | 屠敏 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...

  3. 1月14日科技资讯|京东回应「被薅 7000 万、项目组全体开除」;微信朋友圈屏蔽支付宝集五福;MySQL 8.0.19 发布

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧.扫描上方二维码进入 CSDN App 可以收听御姐萌妹 Sty ...

  4. PAT - L1-020. 帅到没朋友(裸并查集)

    L1-020. 帅到没朋友 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为 ...

  5. 朋友圈功能合集来咯!定时发朋友圈,查看朋友圈,朋友圈跟圈,一键转发朋友圈,延迟评论

  6. 力扣 547. 朋友圈 c语言 三种解法 深搜 广搜 并查集。

    题目: 并查集: /*力扣 547 朋友圈 并查集 c语言 2020/12/14 1:04 by ksks14*/ /*初始化 查找 合并*/ #define maxsize 10000 int fl ...

  7. 苹果怎么换行打字_好玩的微信空白朋友圈怎么发?教程来了!

    下午瞎玩君工作完想刷一刷朋友圈,打开朋友圈之后看到一条奇怪的朋友圈动态:一片空白啥也没有!只有发送时间的提示!我丢!什么鬼!难道是我的微信出bug了么? 后来我就连忙去网上查了一下,结果自然是有惊无险 ...

  8. 并查集c++代码_[Leetcode 每日精选](本周主题-并查集) 547. 朋友圈

    题目难度: 中等 原题链接 今天继续来做并查集的问题, 这道题仍然比较基础, 而且也是个比较接近现实的问题了. 大家在我的公众号"每日精选算法题"中的聊天框中回复 并查集 就能看到 ...

  9. 【小米笔试题】朋友圈问题-并查集解法

    2016年小米校招笔试第三题(西安站) 3 假如已知有n个人和m对好友关系(存于数字r).如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共 ...

最新文章

  1. 适用于AMD ROC GPU的Numba概述
  2. 前端面试8:渲染机制
  3. LAMP环境中如何重新部署一个Yii2.0 web项目
  4. P多行溢出省略号的处理
  5. Java ObjectOutputStream reset()方法与示例
  6. 《妖猫传》大唐盛世背后那些事
  7. Sublime与远程服务器代码同步工具SFTP
  8. 菜鸟——首个页面——奇葩问题
  9. SAP License:工程质保金业务
  10. php随机数怎么获取?一个简单的函数就能生成
  11. 兄弟打印机内存已满清零方法_兄弟打印机打印时显示内存已满怎么处理
  12. 计算机二十四点游戏怎么玩,扑克牌二十四点怎么玩?扑克牌二十四点游戏规则介绍...
  13. win7快捷关闭计算机,win7系统快速启动功能关闭的处理方法
  14. 关于技术人员创业入股的问题
  15. 教育培训行业市场营销推广的主要方式有哪些
  16. Cargo 私有仓库部署
  17. 词汇课程——词的颜色与易混淆的词缀(4)
  18. 根据身份证号码生成生日和性别
  19. 小学生C++编程基础 课程6(共9题)
  20. 【单片机】C52单片机上用两个以上按键实现流水灯控制

热门文章

  1. python数组做参数_python函数传递数组参数吗
  2. 《机器学习》慕课版课后习题-第13章
  3. Ubuntu hostname修改
  4. 数据库基础入门(mysql)
  5. string和wstring之间转换的三种方法
  6. MySQL导出数据为csv的方法(亲测),导出数据为各种文件类型
  7. 详解-程序是如何访问数据库的?
  8. Android Studio 2020 安装教程
  9. 康乐忆享|志愿者心得精选——吕泖霖
  10. linux14.04设置DNS,Ubuntu 14.04 DNS 配置重启不失效