《算法艺术与信息学竞赛》之 并查集 团伙
来源:互联网 发布:开淘宝店的具体步骤 编辑:程序博客网 时间:2024/05/16 12:07
题目描述
在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足:
1、我朋友的朋友是我的朋友;
2、我敌人的敌人是我的朋友;
所有是朋友的人组成一个团伙。告诉你关于这n个人的m条信息,即某两个人是朋友,或者某两个人是敌人,请你编写一个程序,计算出这个城市最多可能有多少个团伙?
输入
第1行为n和m,1
#include<bits/stdc++.h>using namespace std;int n,m,a,b,fa[1001],ans;int e[100001];//存储每一个节点的父亲 bool vis[100001];//访问数组 int p;int find(int x) { return fa[x]==x?x:fa[x]=find(fa[x]);//带路径压缩的合查找操作 }void merge(int x,int y){ int tx=find(x),ty=find(y);//并查集合并操作 fa[tx]=ty;}int main() { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)fa[i]=i; for(int i=1;i<=m;i++){ scanf("%d%d%d",&p,&a,&b);//输入 if(p==0) merge(a,b);//朋友,直接合并 else{ if(!e[a]) e[a]=b; else merge(e[a],b);//敌人的敌人合并 if(!e[b]) e[b]=a; else merge(e[b],a);//同上 } } for(int i=1;i<=n;i++) if(!vis[find(i)]){ ans++; vis[find(i)]=1; } printf("%d",ans);}
阅读全文
0 0
- 《算法艺术与信息学竞赛》之 并查集 团伙
- 《算法艺术与信息学竞赛》之 并查集 scau1138 代码等式
- 《算法艺术与信息学竞赛》之 并查集 银河英雄传说
- 《算法艺术与信息学竞赛》之 贪心 例三 Mirror
- 《算法艺术与信息学竞赛》之 递归与分治法 例一 折纸痕
- 《算法艺术与信息学竞赛》之 递归与分治法 例二 三色多边形
- 《算法艺术与信息学竞赛》之 递归与分治法 例三 聪明的学生
- 《算法艺术与信息学竞赛》之 递归与分治法 例四 丢失的数
- 《算法艺术与信息学竞赛》之 排序与检索 二分 URAL 1184 电缆
- 《算法艺术与信息学竞赛》之 排序与检索 排序 uva120
- 《算法艺术与信息学竞赛》之 排序与检索 Ural1082-Gaby Ivanushka
- 《算法艺术与信息学竞赛》之 排序与检索 ZOJ1388 Exchanges
- 《算法艺术与信息学竞赛》之 递推 例一 月亮之眼 vijos 1540
- 《算法艺术与信息学竞赛》之 枚举 例一 Balloons in a Box
- 《算法艺术与信息学竞赛》之 枚举 例二 POJ—1116 Library
- 《算法艺术与信息学竞赛》之 贪心 例一 Gone Fishing
- 《算法艺术与信息学竞赛》之 贪心 例二 Enlightened landscape
- 《算法艺术与信息学竞赛》之 递推 例二 Yanghee 的算术 HDU
- mybatis原理解析---SqlSession运行过程(下)
- 《Java 编程技巧1001条》 第396条 使用冒泡分类
- ios breakpoint自动停留在main的解决办法
- 深度学习模型推理速度缓慢,why?
- Sunday 算法
- 《算法艺术与信息学竞赛》之 并查集 团伙
- DeepLearning Course
- Apache +Jetty的负载均衡与集群配置(上)
- 微信小程序-访问豆瓣电影api400错误
- screenX clientX pageX的区别
- 知识学习——Hadoop MapReduce开发入门
- 如何用思维导图学Java编程思想
- 96 年美女胜出!那个有关“猪脸识别”的比赛决出冠军啦
- XYNUOJ 词组缩写