【无聊放个模板系列】POJ 3678 2-SAT
#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> ...
随机推荐
- (转)Spark安装与学习
摘要:Spark是继Hadoop之后的新一代大数据分布式处理框架,由UC Berkeley的Matei Zaharia主导开发.我只能说是神一样的人物造就的神器,详情请猛击http://www.spa ...
- 【HTML 5或CSS3入门教程】找兼职撰写人才
出版社要出版一套HTML 5和CSS 3方向的图书,目前急缺两名写作人员,要求1.熟悉CSS 3的各种属性,或熟悉HTML 5框架2.熟悉各种CSS代码,或熟悉各种HTML 5代码3.有写作的兴趣爱好 ...
- 在O(1)时间删除链表结点
题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点. 链表结点与函数的定义如下: struct ListNode { int m_nValue; ListNode* m_p ...
- IIS安装Web Deploy之后没有显示右键菜单
Bug描述: 使用IIS自带的"Web平台安装程序"安装完Web Deploy组件之后,鼠标右键点击网站,弹出的菜单中并没有新增的"部署"选项. Bug解决: ...
- iOS 非ARC基本内存管理系列 3-循环retain和@class
1.@class 使用场景:对于循环依赖关系来说,比方A类引用B类,同时B类也引用A类: 可以看出Person和Card互相引用,此时如果使用#import编译报错!因此当使用@class在两个类中相 ...
- iOS 非ARC基本内存管理系列 2-多对象内存管理(1)
单个对象的内存管理非常简单无非就是alloc对应release,retain对应release.但是如果涉及到很多对象,而且对象与对象有联系的时候该怎么去管理对象的内存呢. 比如同样一本书有好3个人购 ...
- CSS3.0动画之hover---Y轴----3D旋转
div#div2{display: table; width: 100%; height: 100%; text-decoration: none; outline: none; -webkit-tr ...
- delphi中的临界区
var fLock:TRTLCriticalSection; //定义临界区域 // 初始化 InitializeCriticalSection(fLock); //进入临界区 EnterCritic ...
- CentOS7安装性能监控系统
目录 系统描述. 开发环境. 开始之前. 安装influxdb数据库. 安装collectd 安装Grafana FAQ influxdb的web界面没反应. 系统描述 想打造 New ...
- sqlplus中"-S"和"-L"用法
Usage: SQLPLUS [option] [logon] [start] <option> ::= -H | -V | [ [-L] [-M ] [-R ] [-S] ] &qu ...