#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cmath>
#include<stack>
using namespace std;
#define Maxn 1010
#define Maxm 1000010 char s[];
int n,m; struct node
{
int x,y,next;
}t[*Maxm];int len;
int first[*Maxn]; void ins(int x,int y)
{
t[++len].x=x;t[len].y=y;
t[len].next=first[x];first[x]=len;
} bool mark[*Maxn];
int S[*Maxn]; bool dfs(int x)
{
if(mark[x^]) return ;
if(mark[x]) return ;
S[++S[]]=x;mark[x]=;
for(int i=first[x];i;i=t[i].next)
{
int y=t[i].y;
if(!dfs(y)) return ;
}
return ;
} bool tsat()
{
for(int i=;i<n;i++)
{
if(!mark[*i]&&!mark[*i+])
{
S[]=;
if(!dfs(*i))
{
while(S[]) mark[S[S[]--]]=;
if(!dfs(*i+)) return ;
}
}
}
return ;
} int main()
{
scanf("%d%d",&n,&m);
len=;
memset(first,,sizeof(first));
for(int i=;i<=m;i++)
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
scanf("%s",s);
if(s[]=='A')
{
if(z==)
{
ins(*x,*y);ins(*x,*y+);
ins(*y,*x);ins(*y,*x+);
}
else
{
ins(*x+,*y);
ins(*y+,*x);
}
}
else if(s[]=='O')
{
if(z==)
{
ins(*x,*y+);
ins(*y,*x+);
}
else
{
ins(*x+,*y);ins(*x+,*y+);
ins(*y+,*x);ins(*y+,*x+);
}
}
else if(s[]=='X')
{
if(z==)
{
ins(*x,*y+);ins(*x+,*y);
ins(*y,*x+);ins(*y+,*x);
}
else
{
ins(*x,*y);ins(*x+,*y+);
ins(*y,*x);ins(*y+,*x+);
}
}
}
if(tsat()) printf("YES\n");
else printf("NO\n");
return ;
}
2-SAT
2016-11-17 22:00:10
【无聊放个模板系列】POJ 3678 2-SAT的更多相关文章
-
【无聊放个模板系列】POJ 1274 (匈牙利)
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
-
【无聊放个模板系列】BZOJ 3172 (AC自动机)
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
-
【无聊放个模板系列】POJ2752 EXKMP
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
-
【无聊放个模板系列】HDU 3506 (四边形不等式优化DP-经典石子合并问题[环形])
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
-
【无聊放个模板系列】BZOJ 1597 斜率优化
STL 双向队列DEQUE版本 #include<cstdio> #include<cstdlib> #include<cstring> #include<i ...
-
【无聊放个模板系列】HDU 1269 (SCC)
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
-
【无聊放个模板系列】HDU 1358 KMP
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
-
【无聊放个模板系列】HDU 3068 MANACHER
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
-
HDU 3062 &;&; HDU 1824 &;&; POJ 3678 &;&; BZOJ 1997 2-SAT
一条边<u,v>表示u选那么v一定被选. #include <iostream> #include <cstring> #include <cstdio> ...
随机推荐
-
Plant Design Review Based on AnyCAD
Plant Design Review Based on AnyCAD eryar@163.com Abstract. AVEVA Review is used to 3D model visuali ...
-
java线程(2)--同步和锁
参考转载:http://rainyear.iteye.com/blog/1734311 http://turandot.iteye.com/blog/1704027 http://www.cnblog ...
-
App界面交互设计规范(转)
在上篇<APP界面设计风格>确定下来后,产品经理(兼交互设计)还不用着急将所有的交互稿扔给设计师进行细致的界面设计.在细节设计启动前,拉上设计师和安卓前端开发.ios前端开发一起商议确定设 ...
-
为什么引用不了App_Code里的类(报“未能找到类型或命名空间名称”错误)
在Web应用程序中不能通过右键项目-〉”添加“-〉”添加ASP.NET文件夹“方式添加 .因为Web应用程序中App_Code就不存在 . 不过可以通过手动的方式创建,添加一个文件夹命名为App_Co ...
-
Ubuntu12.04 下修改Apache端口号
1:$sudo vim /etc/apache2/ports.conf NameVirtualHost *:80Listen 8090 #将此行的80修改成8090 2:sudo vim /etc/a ...
-
DDD设计一个电商网站
DDD设计一个电商网站(十一)-- 最后的准备 阅读目录 前言 准备 实现 结语 一.前言 最近实在太忙,上周停更了一周.按流程一步一步走到现在,到达了整个下单流程的最后一公里--结算页的处理. ...
-
关于ruby -gem无法切换淘宝源
ruby官网提供的 淘宝的gem源 不起作用 https://ruby.taobao.org/ taobao Gems 源已停止维护,现由 ruby-china 提供镜像服务 http://gems. ...
-
Spring MVC运行流程
一.配置阶段 ①web.xml ②DispatcherServlet //Spring MVC总入口 ③配置初始化参数 //classpath:application.xml,用于配置无数个 ...
-
Java中数组的插入,删除,扩张
Java中数组是不可变的,但是可以通过本地的arraycop来进行数组的插入,删除,扩张.实际上数组是没变的,只是把原来的数组拷贝到了另一个数组,看起来像是改变了. 语法: System.arrayc ...
-
Golang 学习权威网站
Golang 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Golang 是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发 ...