正题

题目链接:
https://www.luogu.org/problemnew/show/P1892


大意

两个人如果认识就只有两种关系,敌人或朋友
而:
朋友的朋友是朋友
敌人的敌人是朋友
(敌人之间也可能是敌人)

求团伙总数


解题思路

就像做食物链一样,如果y和x+n连接那么说明y和x是敌人,朋友的话就直接连就好了。


代码

#include<cstdio>
using namespace std;
int n,m,x,y,father[2001],s;
char c;
int find(int x)
{if (x!=father[x]) return father[x]=find(father[x]);return father[x];
}
void unionn(int x,int y)
{int fa=find(x),fb=find(y);father[fa]=fb;
}
int main()
{scanf("%d%d",&n,&m);for (int i=1;i<=n*2;i++) father[i]=i;for (int i=1;i<=m;i++){scanf("\n%c %d %d",&c,&x,&y);if (c=='F'){unionn(x,y);}else if (c=='E'){unionn(y+n,x);unionn(x+n,y);}}for (int i=1;i<=n;i++) if (father[i]==i) s++;printf("%d",s);
}

P1892-团伙【图论,并查集】相关推荐

  1. 洛谷 P1892 [BOI2003]团伙(并查集变种 反集)

    [BOI2003]团伙 题目描述 现在有 n n n 个人,他们之间有两种关系:朋友和敌人.我们知道: 一个人的朋友的朋友是朋友 一个人的敌人的敌人是朋友 现在要对这些人进行组团.两个人在一个团体内当 ...

  2. P1892 [BOI2003]团伙(并查集,反集)难度⭐⭐★

    题目链接 反集 如果a和b是敌人,合并n+b和a,n+a和b 如果c和a是敌人,合并n+c和a,n+a和c 那么b和c自然就合并在一起了 这样就符合了题目敌人的敌人是朋友的规则 注意 并查集不要忘了初 ...

  3. 图论 + 并查集 ----最小生成树重构图 + 可撤销并查集 + set启发式合并 时间线上的离线求解 D. Graph and Queries

    解题思路 题目大意: 就是给你一个无向图,每个点都有一个权值,和qqq次询问 每次询问有两种操作 1 x:就询问从x点出发,能访问到的最大权值是多少,并把最大权值那个点的权值设置为0 2 x:就是删除 ...

  4. 牛客小白月赛25 C-白魔法师 ( 图论 + 并查集 )

    题目链接 解题报告: 思路:如果将一个黑色点染成白色,那么将得到一个白色连通块,这个连通块由和这个黑色点连结的所有白色连通块组成. 如果将一个白色点染成白色,那么不会有任何变化. 所以我们可以先并查集 ...

  5. 2597 团伙(并查集就是好用!)

    2597 团伙 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 1920年的芝加哥,出现了一群强盗.如果两个强盗遇上了,那么他们要么 ...

  6. 【Baltic2003】【BZOJ1370】Gang团伙(并查集,拆点)

    problem 给定n个人 朋友的朋友是朋友,敌人的敌人是朋友 朋友之间组成一个团伙,求团伙数 solution 将每个点x拆成两个:x和x+n(分别表示x的朋友和敌人) 如果x和y是朋友,就将x和y ...

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

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

  8. 精讲并查集经典习题:P1892 [BOI2003]团伙(超详细)

    一,需要开o2才能AC的代码 用emys[i]存储第i个人的敌人数,vector<long long>emyr[i]存储i个人的所以敌人,fa[i]存储第i个人的大boss. 1.初始化  ...

  9. BZOJ 1370: [Baltic2003]Gang团伙 [并查集 拆点 | 种类并查集WA]

    题意: 朋友的朋友是朋友,敌人的敌人是朋友:朋友形成团伙,求最多有多少团伙 种类并查集WA了一节课,原因是,只有那两种关系才成立,诸如朋友的敌人是朋友之类的都不成立! 所以拆点做吧 #include ...

  10. 并查集——团伙(洛谷 P1892)

    题目选自洛谷P1892 最基础的并查集是给出关系直接合并,这道题呢稍微多了一些条件,就是敌人的敌人也是自己的朋友,所以在合并的时候多了几步操作. 首先,要充分理解题目. "敌人的敌人就是朋友 ...

最新文章

  1. 如何在IE右键菜单中添加菜单项(转)
  2. RabbitMQ(五):Exchange交换器--topic
  3. vb php mysql_VB连接MYSQL数据的方法
  4. ES6 异步编程之二:Promise
  5. IDEA工具开发必备设置-极大提高开发效率
  6. 解决ssh登录过慢问题
  7. bcb6通过https接口post数据_3分钟短文 | 有挑战!PHP用1个函数实现post请求,你用哪个?
  8. [WCF编程]10.操作:请求/应答操作
  9. SpringMvc源码入门
  10. 未来科技计算机作文600字,未来科技作文600字
  11. ArcGis 拓扑检查——缺顶点、悬挂检查代码 C#
  12. hsqldb的存储方式
  13. origin 一键导出文件夹中所有图形
  14. CSS系列教程----摘自洪恩网站
  15. 怎么还原计算机字体库,电脑字体怎么恢复默认设置
  16. BZOJ 5109: [CodePlus 2017]大吉大利,晚上吃鸡! 最短路 拓扑 Dp
  17. 基于Windows下的Web性能测试和压力测试
  18. [附源码]Python计算机毕业设计Django高校社团管理系统
  19. jdk api 1.8 -中文版
  20. 西门子系列全套学习视频,免费领取!

热门文章

  1. php-7.1.0,PHP 7.4.0 Alpha 1 v7.4.0 官方最新版
  2. c++游戏代码大全_还在学少儿编程?不如来玩工厂编程师,免费学编程逻辑的小游戏...
  3. ntopng mysql_网络流量监控工具与分析Ntop和Ntopng
  4. 计算机函数公式中怎么合并合并,Excel用函数和公式瞬间实现把表格全部合并到一个表中去...
  5. c语言字符串中取最大字符串,使用C语言提取子字符串及判断对称子字符串最大长度...
  6. 卷不动也得继续学!紧跟vue3的步伐,再来get一波进阶新特性!
  7. 『软件工程12』软件工程实践方法——软件测试
  8. mysql qps如何查看_一款查看mysql QPS的脚本
  9. [PAT乙级]1039 到底买不买
  10. [C++STL]C++实现string容器