P1892 [BOI2003]团伙 并查集
2024-08-25 13:48:56
题目描述
1920年的芝加哥,出现了一群强盗。如果两个强盗遇上了,那么他们要么是朋友,要么是敌人。而且有一点是肯定的,就是:
我朋友的朋友是我的朋友;
我敌人的敌人也是我的朋友。
两个强盗是同一团伙的条件是当且仅当他们是朋友。现在给你一些关于强盗们的信息,问你最多有多少个强盗团伙。
输入输出格式
输入格式:
输入文件gangs.in的第一行是一个整数N(2<=N<=1000),表示强盗的个数(从1编号到N)。 第二行M(1<=M<=5000),表示关于强盗的信息条数。 以下M行,每行可能是F p q或是E p q(1<=p q<=N),F表示p和q是朋友,E表示p和q是敌人。输入数据保证不会产生信息的矛盾。
输出格式:
输出文件gangs.out只有一行,表示最大可能的团伙数。
输入输出样例
输入样例#1: 复制
6
4
E 1 4
F 3 5
F 4 6
E 1 2
输出样例#1: 复制
3 维护敌人的敌人是朋友
#include<bits/stdc++.h>
using namespace std;
//input by bxd
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define repp(i,a,b) for(int i=(a);i>=(b);--i)
#define RI(n) scanf("%d",&(n))
#define RII(n,m) scanf("%d%d",&n,&m)
#define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
#define RS(s) scanf("%s",s);
#define ll long long
#define pb push_back
#define REP(i,N) for(int i=0;i<(N);i++)
#define CLR(A,v) memset(A,v,sizeof A)
//////////////////////////////////
#define inf 0x3f3f3f3f
const int N=+;
int f[N];
int find1(int x)
{
return f[x]==x?x:f[x]=find1(f[x]);
}
struct node
{
int x,y,v;
}s[N];
bool cmp(node a,node b)
{
return a.v>b.v;
}
void union1(int x,int y)
{
int a=find1(x);
int b=find1(y);
if(a!=b)
f[a]=b;
}
int vis[N];
int main()
{
int n,m;
RII(n,m);
rep(i,,n)f[i]=i;
char s[];
int a,b;
rep(i,,m)
{
RS(s);RII(a,b);
if(s[]=='F')
union1(a,b);
else
{
if(!vis[a])vis[a]=b;
else union1(vis[a],b);
if(!vis[b])vis[b]=a;
else union1(vis[b],a);
}
}
int cnt=;
rep(i,,n)
if(f[i]==i)
cnt++;
cout<<cnt; return ;
}
最新文章
- C++ ODB 框架(未实践使用)
- SeismicPro地震剖面显示程序
- robotframework笔记25
- 【NOIP2013】【P1441】花匠
- C++与Java多态的区别
- UVALive 3661 Animal Run(最短路解最小割)
- java 枚举 类 enum
- Django 1.6 的测试驱动开发
- Ajax中XML和JSON格式的优劣比较
- IOS SDK相机的详细解释/画廊(默认+他们的高清摄像头接口)
- poj_1743_Musical Theme(后缀数组)
- lua 中操作系统库
- 探索Visual Studio生成的.vs文件夹内部结构和作用
- halcon电路断裂检测
- MySQL8的注意点
- python列表和元组操作
- loj#2305. 「NOI2017」游戏 2-sat
- Java-JUC(四):同步容器介绍
- vue 目录结构与文件配置说明
- Makefile学习之路——2
热门文章
- Ex 7_17 考虑如下的网络(其中数字为对应边的容量)...第十三次作业
- 清北学堂 清北-Day5-R2-xor
- ssh: connect to host github.com port 22: Connection timed out
- Confluence 6 布局高级自定义
- 以resnet作为前置网络的ssd目标提取检测
- IO 多路复用
- 刷《剑指offer》笔记
- JAVA中的Token
- windows 下命令行启动停止mysql
- mysql5.7 root用户默认密码