【题目大意】

在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: 1、 我朋友的朋友是我的朋友; 2、 我敌人的敌人是我的朋友; 所有是朋友的人组成一个团伙。告诉你关于这n个人的m条信息,即某两个人是朋友,或者某两个人是敌人,请你编写一个程序,计算出这个城市最多可能有多少个团伙?

【思路】

水………NOIP的小孩都不屑于玩……

把i拆成i和i+n,其中i表示i的朋友,i+n表示i的敌人。对于(i,j):

(1)i,j是朋友,那么合并i和j。

(2)i,j不是朋友,那么合并i和j+n,j和i+n,代表敌人的敌人是我的朋友。

*注意,如果i和j是敌人,那么它们的敌人不一定是朋友。所有不要合并i+n和j+n。

好水啊……

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=;
int u[MAXN],h[MAXN],appear[MAXN];
int n,m,gang; int find(int x)
{
int r=x,temp;
while (u[r]!=r) r=u[r];
while (x!=r)
{
temp=u[x];
u[x]=r;
x=temp;
}
return r;
} void union_set(int fa,int fb)
{
if (h[fa]>=h[fb])
{
u[fb]=fa;
if (h[fa]==h[fb]) h[fa]++;
}
else u[fa]=fb;
} void init()
{
for (int i=;i<=*n;i++)
{
u[i]=i;
h[i]=;
}
} void solve()
{
scanf("%d%d",&n,&m);
init();
for (int i=;i<=m;i++)
{
char op[];
int u,v;
scanf("%s%d%d",op,&u,&v);
if (op[]=='F')
{
int fa=find(u),fb=find(v);
if (fa!=fb) union_set(fa,fb);
}
else
{
int fa=find(u),fb=find(v+n);
if (fa!=fb) union_set(fa,fb);
fa=find(v),fb=find(u+n);
if (fa!=fb) union_set(fa,fb);
}
}
} void getans()
{
for (int i=;i<=n;i++) u[i]=find(i);
memset(appear,-,sizeof(appear));
gang=;
for (int i=;i<=n;i++)
{
if (appear[u[i]]==-)
{
gang++;
appear[u[i]]=;
}
}
printf("%d",gang);
} int main()
{
solve();
getans();
return ;
}

最新文章

  1. Go http共享
  2. sql server 自增长id 允许插入显示值
  3. flash cs6导入某些mp3不能的解决办法
  4. Unicode编码
  5. WindowsServer问题总结
  6. 引用类型之Array类型
  7. Egret及Node.js的安装部署
  8. 两种计算和输出n内5要么9除尽互惠
  9. 《Head First Python》学习笔记03 异常处理
  10. MySQL 视图 总结
  11. [Unity Shader]光照模型对物体的假设
  12. Spring实战——Profile
  13. webpack 插件拾趣 (1) —— webpack-dev-server
  14. JS操作字符串常用的方法
  15. Bootstrap模板代码+页面自适应页面的案例代码
  16. mpvue——componets中引入vant-weapp组件
  17. angular5 组件通信(一)
  18. 【BZOJ4830】[HNOI2017]抛硬币(组合计数,拓展卢卡斯定理)
  19. zabbix rpm 安装 新增zabbix yum 源 并更新
  20. Pearls in a Row CodeForces 620C 水题

热门文章

  1. HDU 1256 画8 (找规律)
  2. 从python入门ruby
  3. python初步学习-面向对象之 类(二)
  4. 图片轮播器——jquery插件
  5. 16级第二周寒假作业H题
  6. 转: oracle中schema指的是什么?
  7. SPI最大传输速率【转】
  8. s3c6410下移植sqlite3.7.8
  9. 在浏览器中输入www.baidu.com后执行的全过程
  10. WPF之DataGrid--列的前台及后台实现