题面:

  bzoj题面有误,还是看luogu的吧

  https://www.luogu.org/problemnew/show/P1892

题解:

  种类并查集。。

  因为有敌人的敌人是朋友这个条件,所以需要一个中转点。。

  因此,将每个点拆成两个点,一个是朋友点,另一个是敌人点。当读到A与B是朋友时,就将A与B所对应的朋友点并集;当读到两个点是敌人的时候,就将A点所对应的敌人点与B所对应的朋友点并集,将A所对应的朋友点和B所对应的敌人点并集。

  P.S.当读到A与B点是朋友时,不能将A与B点所对应的敌人结点并集,因为题目并没有说朋友的敌人是敌人。

代码:

#include<bits/stdc++.h>

using namespace std;

const int maxn=;
int fa[maxn],n,m,x,y,vis[maxn],ans;
char ch[]; int ffa(int x){
return fa[x]==x?x:fa[x]=ffa(fa[x]);
} int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=*n;i++) fa[i]=i;
for(int i=;i<=m;i++){
scanf("%s%d%d",ch,&x,&y);
if(ch[]=='F'){
int fx=ffa(x),fy=ffa(y);
if(fx!=fy) fa[fy]=fx;
}
else{
int fx=ffa(x),fy=ffa(y);
int fxx=ffa(x+n),fyy=ffa(y+n);
if(fx!=fyy) fa[fyy]=fx;
if(fxx!=fy) fa[fxx]=fy;
}
}
for(int i=;i<=n;i++)
if(!vis[ffa(i)])
ans++,vis[ffa(i)]=;
printf("%d",ans);
return ;
}

BZOJ 1370: [Baltic2003]Gang团伙(luogu 1892)(种类并查集)的更多相关文章

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

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

  2. BZOJ 1370 [Baltic2003]Gang团伙:并查集【虚点】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1370 题意: 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: (1)我 ...

  3. 浅谈并查集&种类并查集&带权并查集

    并查集&种类并查集&带权并查集 前言: 因为是学习记录,所以知识讲解+例题推荐+练习题解都是放在一起的qvq 目录 并查集基础知识 并查集基础题目 种类并查集知识 种类并查集题目 并查 ...

  4. [BZOJ1370][Baltic2003]Gang团伙

    [BZOJ1370][Baltic2003]Gang团伙 试题描述 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: 1. 我朋友的朋友是我的朋友: 2. 我敌人的敌人是我的朋友: ...

  5. BZOJ 4195: [Noi2015]程序自动分析 [并查集 离散化 | 种类并查集WA]

    题意: 给出若干相等和不等关系,判断是否可行 woc NOI考这么傻逼的题飞快打了一个种类并查集交上了然后爆零... 发现相等和不等看错了异或一下再叫woc90分 然后发现md$a \neq b, a ...

  6. 洛谷 P1892 [BOI2003]团伙(种类并查集)

    传送门 解题思路 用并查集f存朋友关系,一个数组e存的是敌人关系,是一个辅助数组,所以叫做种类并查集. 当p和q是朋友时,直接合并,但是当是敌人时,需要一些操作. 当p还没有敌人时(即p的敌人是自己) ...

  7. POJ1703Find them, Catch them[种类并查集]

    Find them, Catch them Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 42416   Accepted: ...

  8. NOI2001|POJ1182食物链[种类并查集 向量]

    食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 65430   Accepted: 19283 Description ...

  9. pku 1703(种类并查集)

    题目链接:http://poj.org/problem?id=1703 思路;个人觉得本质上还是和带权并查集一样的,只不过多了一个MOD操作,然后就是向量关系图稍微改动一下就变成种类并查集了,对于本题 ...

随机推荐

  1. CentOS7 下面安装jdk1.8

    1. 卸载已有的jdk rpm -qa |grep jdk |xargs rpm -e --nodeps 2. 使用xftp上传 jdk 的文件我这里上传的是 jdk-8u121-linux-x64. ...

  2. [GS]uuid-ossp

    uuid-ossp 原贴地址:http://postgres.cn/docs/9.6/uuid-ossp.html 关于 OSSP的含义 uuid-ossp模块提供函数使用几种标准算法之一产生通用唯一 ...

  3. Windows字符集安装

    0. 获取字符集安装文件. 最简单的办法 上msdn i tell you 下载 多语言安装盘. 一般都比较大. 比如: 1. 进入windows10 操作系统. 运行输入: lpksetup 选择安 ...

  4. 网络编程--使用UDP发送接收数据

    package com.zhangxueliang.udp; import java.io.IOException; import java.net.DatagramPacket; import ja ...

  5. jQuery EasyUI 折叠面板accordion的使用实例

    1.对折叠面板区域 div 设置 class=”easyui-accordion” 2.在区域添加多个 div, 每个 div 就是一个面板 (每个面板一定要设置 title 属性). 3.设置面板属 ...

  6. Laravel 的十八个最佳实践

    本文翻译改编自 Laravel 的十八个最佳实践 这篇文章并不是什么由 Laravel 改编的 SOLID 原则.模式等. 只是为了让你注意你在现实生活的 Laravel 项目中最常忽略的内容.   ...

  7. bootStrap的使用

    1.首先要打开bootstrap的官网 点进去 2你会看到下面这样一个页面里面有很多组件 这里面的代码是实现组件功能的核心代码,还不能直接使用,要引入相关的js css 我们要在起步中下载相关的页面下 ...

  8. Hbase存储流程

  9. GitHub & OAuth 2.0 & JWT

    GitHub & OAuth 2.0 & JWT https://www.rfcreader.com/#rfc6749 GitHub & OAuth https://www.b ...

  10. 集合之HashSet(含JDK1.8源码分析)

    一.前言 我们已经分析了List接口下的ArrayList和LinkedList,以及Map接口下的HashMap.LinkedHashMap.TreeMap,接下来看的是Set接口下HashSet和 ...