hdu 3062 2-SAT问题
思路:裸的2-SAT。
#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<cstdio>
#include<vector>
#include<string>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define Maxn 2010
#define Maxm 100010
#define LL __int64
#define Abs(x) ((x)>0?(x):(-x))
#define lson(x) (x<<1)
#define rson(x) (x<<1|1)
#define inf 0x7fffffff
#define Mod 1000000007
using namespace std;
int dfn[Maxn],low[Maxn],id[Maxn],Stack[Maxn],lab,num,e,top,vi[Maxn],n,m;
vector<int> head[Maxn];
void init()
{
memset(dfn,,sizeof(dfn));
memset(low,,sizeof(low));
lab=num=top=;
memset(vi,,sizeof(vi));
memset(id,,sizeof(id));
for(int i=;i<=*n;i++)
head[i].clear();
}
void Tarjan(int u)
{
int i,v,sz;
dfn[u]=low[u]=++lab;
Stack[top++]=u;
vi[u]=;
sz=head[u].size();
for(i=;i<sz;i++){
v=head[u][i];
if(!dfn[v]){
Tarjan(v);
low[u]=min(low[v],low[u]);
}
if(vi[v])
low[u]=min(low[u],dfn[v]);
}
if(low[u]==dfn[u]){
++num;
do{
i=Stack[--top];
id[i]=num;
vi[i]=;
}while(i!=u);
}
return ;
}
int main()
{
int i,j,a,b,c,d;
while(scanf("%d",&n)!=EOF){
init();
scanf("%d",&m);
for(i=;i<=m;i++){
scanf("%d%d%d%d",&a,&b,&c,&d);
a++;
b++;
if(c==&&d==)
head[a].push_back(b+n),head[b].push_back(a+n);
if(c==&&d==)
head[a].push_back(b),head[b+n].push_back(a+n);
if(c==&&d==)
head[a+n].push_back(b+n),head[b].push_back(a);
if(c==&&d==)
head[a+n].push_back(b),head[b+n].push_back(a);
}
for(i=;i<=*n;i++){
if(!dfn[i])
Tarjan(i);
}
for(i=;i<=n;i++)
if(id[i]==id[i+n])
break;
if(i<=n)
printf("NO\n");
else
printf("YES\n");
}
return ;
}
hdu 3062 2-SAT问题的更多相关文章
- HDU 3062 && HDU 1824 && POJ 3678 && BZOJ 1997 2-SAT
		
一条边<u,v>表示u选那么v一定被选. #include <iostream> #include <cstring> #include <cstdio> ...
 - hdu 3062 Party 2-SAT
		
题目链接:HDU - 3062 有n对夫妻被邀请参加一个聚会,因为场地的问题,每对夫妻中只有1人可以列席.在2n 个人中,某些人之间有着很大的矛盾(当然夫妻之间是没有矛盾的),有矛盾的2个人是不会同时 ...
 - hdu 3062 2-sat入门题
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3062 #include <cstdio> #include <cmath> # ...
 - hdu 3062+1824(2-sat入门)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3062 思路:根据矛盾关系连边(如果a与b矛盾,则连边a'->b,b'->a),然后强连通缩 ...
 - HDU 3062:Party(2-SAT入门)
		
http://acm.hdu.edu.cn/showproblem.php?pid=3062 题意:中文. 思路:裸的2-SAT.判断二元组的两个人是否在同一个强连通分量. 学习地址:http://w ...
 - HDU 3062 Party
		
Party Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
 - hdu 4115 (2—SAT)
		
题意:两个人石头剪刀布,一个人的出法已确定,另一个人的出法有一定约束,某两次要相同或者不同,问你第二个人能否全部都不失败. 思路:根据Bob出的情况,我们可以确定每次Alice有两种方案. R与P,S ...
 - hdu 3062
		
2-SAT的入门题: 网上说这个算法最好的入门教材是:伍昱的<由对称性解2-SAT问题>的ppt和赵爽的论文<2-SAT 解法浅析>: 看了一下伍昱的ppt,很好理解! 而这道 ...
 - 图论(2-sat):HDU 3062 Party
		
Party Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
 
随机推荐
- 后台动态设置前台标签内容和属性(转自http://www.wzsky.net/html/Program/net/26171.html)
			
和以前的asp不同,在asp.net中为了彻底的代码分离,我们一般不采用<%=%>嵌入标签中来设置一些属性和内容.一般来说有2种情况:(一)设置标签的内容,比如<title>这 ...
 - mac 安装PIL
			
PIL是python Image library 在mac终端中通过以下命令安装: # download curl -O -L http://effbot.org/media/downloads/Im ...
 - Castle IOC容器构建配置详解(一)
			
主要内容 1.配置什么 2.几种配置方式 3.Include 介绍 4.Properties介绍 5.条件状态 一.配置什么 Castle IOC中并不像Spring.net那样贯穿着一个思想就是一切 ...
 - PowerDesigner 业务处理模型( BPM ) 说明 及Enterprise Architect使用教程
			
http://www.cnblogs.com/springside-example/archive/2011/10/17/2529640.html http://wenku.baidu.com/lin ...
 - (剑指Offer)面试题20:顺时针打印矩阵
			
题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字, 例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...
 - SCROLLINFO结构体中fMask和nPage的理解
			
还是VC++中有关显示图像的问题. 我们在显示一幅比较大的图像时,要使用带标准滚动条的对话框.涉及对滚动条的操作就不得不提SCROLLINFO这个结构体.只看单词意思就这道这个结构体要储存滚动条的一些 ...
 - AS与JS相互通信(Flex中调用js函数)
			
转载自http://www.blogjava.net/Alpha/archive/2009/06/27/284373.html Flex中As调用Js的方法是: 1.导入包 (import f ...
 - C# 反射类型转换
			
/// <summary> /// 泛型类型转换 /// </summary> /// <typeparam name="T">要转换的基础类型 ...
 - codeforces 377A. Puzzles 水题
			
A. Puzzles Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset/problem/33 ...
 - GLSL实现Image Filter 【转】
			
http://blog.csdn.net/a3070173/archive/2008/11/27/3390477.aspx 图像过滤无论是在作图工具还是特效的实现上都时有运用,这里发一些通常会使用到的 ...