开3*n的并查集,其中x用来连接与x同类的,x+n用来连接x吃的,x+2*n用来连接x被吃的。

1 x y时,如果 x吃y 或 x被y吃,那么为假话,

否则x与y同类,x吃的y也吃,x被吃的y也被吃;

2 x y时,如果 x与y同类(x与x自然也是同类) 或 y吃x,那么为假话,

否则x吃y,y被x吃,y吃x被吃的。

代码:

#include<iostream>
#include<stdio.h>
#include<cstring>
#include<queue>
#include<map>
#include<stdlib.h>
using namespace std; int f[]; int find(int x)
{
if(f[x]==x)return x;
return f[x]=find(f[x]);
} void he(int x,int y)
{
x=find(x);
y=find(y);
if(x==y)return;
f[y]=x;
} int main()
{
int n,m,ans=;
cin>>n>>m; for (int i=;i<=*n;i++)f[i]=i; for (int i=;i<=m;i++)
{
int op,x,y;
cin>>op>>x>>y;
if (x<||y<||x>n||y>n||(x==y&&op==))ans++;
else
{
if (op==)
{
if (find(x)==find(y+n)||find(x)==find(y+*n))ans++;
else
{
he(x,y);
he(x+n,y+n);
he(x+*n,y+*n);
}
}
else
{
if (find(x)==find(y)||find(y+*n)==find(x))ans++;
else
{
he(x,y+n);
he(x+n,y+*n);
he(x+*n,y);
}
}
}
}
cout<<ans;
}

最新文章

  1. Spring Bean
  2. MySQL配置文件mysql.ini参数详解
  3. 号外号外:9月13号《Speed-BI云平台案例实操--十分钟做报表》开讲了
  4. 喜讯!Ubuntu 16.10(Yakkety Yak) Final Beta发布喽!!!
  5. val() 和attr() 取值的问题
  6. [CentOS 6.5 X64]讓firefox java plugin 啟動
  7. android 开发-自定义多节点进度条显示
  8. java初学的几个问题
  9. C、C++、Java异或运算交换变量变量值的区别
  10. C#中的一些技巧
  11. RChain总体架构图
  12. MongoDB 3.0新增特性一览
  13. (JavaScript)实现上传图片实时预览和(文件)大小判断
  14. Hibernate c3p0的整合
  15. 让win7变成无线路由(需要用管理员权限打开)最后完善.rar
  16. Mysql正则匹配某列是否含有手机号
  17. 02: python3使用email和smtplib库发送邮件
  18. 2014年百度之星资格赛第四题Labyrinth
  19. sicily 1154. Easy sort (tree sort&amp; merge sort)
  20. Python 正则表达式规则

热门文章

  1. springMvc架构简介
  2. contOS下安装Tomcat
  3. ubuntu64,ndk-r9 编译 ffmpeg 2.1.1的config文件
  4. java封装后引用的例子
  5. Java-Runoob-高级教程:Java 文档注释
  6. H3C V7版本的系统默认权限
  7. TCP/IP协议:最大传输单元MTU 和 最大分节大小MSS
  8. 【POJ】2229 Sumsets(递推)
  9. Python - Pyinstaller
  10. bat执行sqlplus语句,省去@xx.sql过程