#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 2100;
struct node{
int v,next;
}edge[maxn*maxn];
int head[maxn],res[1005*1005][2],low[maxn],dfn[maxn],stack[maxn],in[maxn];
int n,m,id,clock,top; void add_edge(int u,int v){
edge[id].v = v;edge[id].next = head[u];head[u] = id++;
}
void init(){
int c1,c2;
scanf("%d",&m);
id = 0;memset(head,-1,sizeof(head));
for( int i = 0; i < m; i++){
scanf("%d%d%d%d",&res[i][0],&res[i][1],&c1,&c2);
res[i][0] = res[i][0]*2 + c1;
res[i][1] = res[i][1]*2 + c2;
//两个方向必须相反,否则求出的结果会不对
add_edge(res[i][0],res[i][1]^1);
add_edge(res[i][1],res[i][0]^1);
}
}
void tarjan(int u){
low[u] = dfn[u] = ++clock;
stack[top++] = u;
in[u] = 1;
for(int id = head[u]; id != -1 ; id = edge[id].next){
int v = edge[id].v;
if( !dfn[v] ){
tarjan(v);
low[u] = low[u] < low[v] ? low[u] : low[v];
}
else if( in[v] && low[u] > dfn[v])
low[u] = dfn[v];
}
if( low[u] == dfn[u]){
do{
in[stack[--top]] = 0;
}while( u != stack[top]);
}
} int main(){
//freopen("in.txt","r",stdin);
int i;
while( ~scanf("%d",&n)){
init();
memset(dfn,0,sizeof(dfn));
memset(in,0,sizeof(0));
clock = top = 0;
for( i = 0; i < n*2 ; i++)
if( !dfn[i])
tarjan(i);
for( i = 0; i < m; i++)//在同一个强连通分量中的low值相等
if(low[res[i][0]] == low[res[i][1]])
break;
if( i < m )puts("NO");
else puts("YES");
}
return 0;
}

  

HDU 3062 Party 裸 2-sat的更多相关文章

  1. HDU 3062 && HDU 1824 && POJ 3678 && BZOJ 1997 2-SAT

    一条边<u,v>表示u选那么v一定被选. #include <iostream> #include <cstring> #include <cstdio> ...

  2. hdu 3062 Party 2-SAT

    题目链接:HDU - 3062 有n对夫妻被邀请参加一个聚会,因为场地的问题,每对夫妻中只有1人可以列席.在2n 个人中,某些人之间有着很大的矛盾(当然夫妻之间是没有矛盾的),有矛盾的2个人是不会同时 ...

  3. HDU 3062:Party(2-SAT入门)

    http://acm.hdu.edu.cn/showproblem.php?pid=3062 题意:中文. 思路:裸的2-SAT.判断二元组的两个人是否在同一个强连通分量. 学习地址:http://w ...

  4. HDU 1102 最小生成树裸题,kruskal,prim

    1.HDU  1102  Constructing Roads    最小生成树 2.总结: 题意:修路,裸题 (1)kruskal //kruskal #include<iostream> ...

  5. HDU(1856),裸的带权并查集

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1856 题意:朋友圈问题,A和B是朋友,B和C是朋友则A和C也是朋友,依次类推,题目的意思就是求最大的朋 ...

  6. hdu 3062 2-sat入门题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3062 #include <cstdio> #include <cmath> # ...

  7. hdu 3062+1824(2-sat入门)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3062 思路:根据矛盾关系连边(如果a与b矛盾,则连边a'->b,b'->a),然后强连通缩 ...

  8. hdu 3062 2-SAT问题

    思路:裸的2-SAT. #include<map> #include<set> #include<cmath> #include<queue> #inc ...

  9. HDU 1213(裸并查集)(无变形)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1213 How Many Tables Time Limit: 2000/1000 MS (Java/ ...

随机推荐

  1. centos7上搭建zookeeper集群

    1.下载zookeeper http://www.apache.org/dyn/closer.cgi/zookeeper/  可以登录这个网站下载,然后上传到 centos上 修改成自己需要的版本 , ...

  2. 【iOS】file not found: .../Build/Products/Debug-iphonesimulator file not found

    今天又遇到了这个问题: ld: file not found: /Users/***/Library/Developer/Xcode/DerivedData/***-dfscappaygvbougtb ...

  3. linux字符设备驱动中内核如何调用驱动入口函数 一点记录

    /* 内核如何调用驱动入口函数 ? *//* 答: 使用module_init()函数,module_init()函数定义一个结构体,这个结构体里面有一个函数指针,指向first_drv_init() ...

  4. apache安装zip包安装(非exe)

    安装步骤如下: (1) 下载apache安装程序 进入官网:选择一个版本的apache 选择红色区域的内容,在之后进入的页面中: 选择红色区域的内容,进入页面: 现则VC9的进行下载. (2) 安装 ...

  5. 使用用树莓派打造远程WEB服务器

    简介:系统配置Raspberry Pi 3B + Raspbian + MySQL5.7 + Tomcat 9 + Nginx + 公网IP. 工具:Win32DiskImager .FileZill ...

  6. 恐怖的Hibernate和JavaFX Table CallBack!

    目录 [隐藏] 1 Hibernate 2 JavaFX Table Hibernate 最近在做 JavaFX 应用,不管再怎么避免数据持久化,但面对几十万的数据量的时候也只能乖乖的去配置持久层框架 ...

  7. 在一个含有1-n的序列中,每次找到第Ki小的数,并把它删除(线段树)

    提交链接 Data structure is one of the basic skills for Computer Science students, which is a particular ...

  8. alluxio源码解析-层次化存储(4)

    层次化存储-特性介绍: https://www.alluxio.org/docs/1.6/cn/Tiered-Storage-on-Alluxio.html 引入分层存储后,Alluxio管理的数据块 ...

  9. 简单设计企业级JOB平台

    前言 在企业级项目中有许多能够用到定时任务的场景例如: 在某个时间点统一给某些用户发送邮件信息 接口表数据发送 某月某日更新报表数据 ...... 目前我们使用SpringBoot快速整合Quartz ...

  10. Spring入门(九):运行时值注入

    Spring提供了2种方式在运行时注入值: 属性占位符(Property placeholder) Spring表达式语言(SpEL) 1. 属性占位符 1.1 注入外部的值 1.1.1 使用Envi ...