题目大意:给定n个人,朋友的朋友是朋友,敌人的敌人是朋友,朋友之间组成一个团伙,求团伙数

将每个点x拆成两个:x和x+n

如果x和y是朋友,就将x和y合并

如果x和y是敌人,就将x和y+n合并,将y和x+n合并

注意敌人的朋友不一定是敌人,因此如果x和y是朋友,不能将x+n和y+n合并

#include

#include

#include

#include

#define M 1010

using namespace std;

int n,m,ans,a[M];

namespace Union_Find_Set{

int fa[M<<1];

int Find(int x)

{

if(!fa[x]||fa[x]==x)

return fa[x]=x;

return fa[x]=Find(fa[x]);

}

void Union(int x,int y)

{

x=Find(x);y=Find(y);

if(x==y) return ;

fa[x]=y;

}

}

int main()

{

using namespace Union_Find_Set;

int i,x,y;

char p[10];

cin>>n>>m;

for(i=1;i<=m;i++)

{

scanf("%s%d%d",p,&x,&y);

if(p[0]=='F')

Union(x,y);//Union(x+n,y+n);

else

Union(x,y+n),Union(x+n,y);

}

for(i=1;i<=n;i++)

a[i]=Find(i);

sort(a+1,a+n+1);

for(i=1;i<=n;i++)

if(i==1||a[i]!=a[i-1])

++ans;

cout<

return 0;

}

原文:http://blog.csdn.net/popoqqq/article/details/42919219

团伙 并查集_BZOJ 1370 Baltic2003 Gang团伙 并查集相关推荐

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

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

  2. 【bzoj1370】[Baltic2003]Gang团伙 并查集

    题目描述 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: 1. 我朋友的朋友是我的朋友: 2. 我敌人的敌人是我的朋友: 所有是朋友的人组成一个团伙.告诉你关于这n个人的m条信息, ...

  3. BZOJ1370 [Baltic2003]Gang团伙

    20多天没写题啊...连键盘长什么样都忘了额... 用这道并查集水题练手2333 1 /******************************************************** ...

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

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

  5. 并查集,不就一并和一查?

    什么是并查集 并查集这种数据结构,可能出现的频率不是那么高,但是还会经常性的见到,其理解学习起来非常容易,通过本文,一定能够轻轻松松搞定并查集! 对于一种数据结构,肯定是有自己的应用场景和特性,那么并 ...

  6. mysql 数据库集群搭建:(四)pacemaker管理三台maxscale集群,搭建mariadb读写分离中间层集群...

    为什么80%的码农都做不了架构师?>>>    <mysql 数据库集群搭建:(一)VirtualBox中多台CentOS虚拟机间和windows主机间互通以及访问互联网设置& ...

  7. Python计算医疗数据训练集、测试集的对应的临床特征:训练集(测试集)的阴性和阳性的样本个数、连续变量的均值(标准差)以及训练测试集阳性阴性的p值、离散变量的分类统计、比率、训练测试集阳性阴性的p值

    Python使用pandas和scipy计算医疗数据训练集.测试集的对应的临床特征:训练集(测试集)的阴性和阳性的样本个数.连续变量的均值(标准差࿰

  8. MAT之PLS:利用PLS(两个主成分的贡献率就可达100%)提高测试集辛烷值含量预测准确度并《测试集辛烷值含量预测结果对比》

    MAT之PLS:利用PLS(两个主成分的贡献率就可达100%)提高测试集辛烷值含量预测准确度并<测试集辛烷值含量预测结果对比> 目录 输出结果 实现代码 输出结果 实现代码 load sp ...

  9. MAT之PCA:利用PCA(四个主成分的贡献率就才达100%)降维提高测试集辛烷值含量预测准确度并《测试集辛烷值含量预测结果对比》

    MAT之PCA:利用PCA(四个主成分的贡献率就才达100%)降维提高测试集辛烷值含量预测准确度并<测试集辛烷值含量预测结果对比> 目录 输出结果 实现代码 输出结果 后期更新-- 实现代 ...

最新文章

  1. 蓝桥杯 算法训练 最大的算式
  2. 科大星云诗社动态20210523
  3. POj 3420 Quad Tiling 状态压缩DP+递推+矩阵快速幂
  4. ufs2.0测试软件,UFS 2.1和UFS 2.0差距到底多大?跑分还有很多学问
  5. android studio中tabhost自定义,Android Studio——TabWiget组件实现(带图标签)
  6. 100句激励自己的英文名言
  7. 性能测试入门,其实很简单,看看这篇,好好学习
  8. 朱老师ARM裸机学习笔记(四):S5PV210启动过程详解
  9. Android开发是简单的「能写应用就行」吗?复习指南
  10. js 类似发微博或者微信朋友圈的时间显示 刚刚 几天前
  11. 团队协作与团队内部竞争_为什么您的团队可能在协作游戏中失败
  12. 互联网赚钱的项目有哪些?6个互联网赚钱模式
  13. 什么样的教育是真正有意义的?---范美忠
  14. Linux下安装tuned以使用tuned-adm命令优化Linux系统性能
  15. 如何预防arp欺骗以及c#如何自动绑定网关的mac地址?
  16. 名词解释atm网络_计算机网络名词解释大全
  17. Adobe Photoshop(ps)
  18. CTF中常见密码学(一)
  19. 微型计算机测控系统课程设计报告,微机原理课程设计实验报告--步进电机控制.docx...
  20. Hantek 5000系列示波器原理图研究

热门文章

  1. IT测试时准确数据的技巧(IT总结之三去除旧数据)
  2. 20100929 朝会内容
  3. 网络管理与维护作业10
  4. Android TextView文字超出一屏不能显示其它的文字 解决方案
  5. System.Security.Cryptography.RSA.FromXmlString 系统找不到指定的文件和X509读取证书文件系统找不到指定的文件异常
  6. 记因循环依赖的解决方案
  7. 解决局域网共享问题,提示:无法访问,你可能没有权限使用网络资源
  8. 如何在Java项目中查找未使用/无效的代码
  9. 在Java中编码为Base64
  10. 如何实施基本的“长轮询”?