对于怎么建边还是不太清楚

选了a,那么b c不选,所以连边

选了b或c,那么a必定不选

/*
每个点拆成i*2,i*2+1
队长选,那么队友不选
队长不选,那么队友必定要选
*/
#include<bits/stdc++.h>
using namespace std;
#define N 6005
#define M 2000005
struct Edge{int to,nxt;}e[M<<];
int n,m,head[N],tot; void add(int u,int v){
e[tot].to=v;e[tot].nxt=head[u];head[u]=tot++;
} int dfn[N],low[N],cnt,id[N],ind,stk[N],top,ins[N];
void tarjan(int x){
low[x]=dfn[x]=++ind;
stk[++top]=x;ins[x]=;
for(int i=head[x];i!=-;i=e[i].nxt){
int v=e[i].to;
if(!dfn[v]){
tarjan(v);
low[x]=min(low[x],low[v]);
}
else if(ins[v])
low[x]=min(low[x],low[v]);
}
if(low[x]==dfn[x]){
int y;cnt++;
do{
y=stk[top--];
ins[y]=;
id[y]=cnt;
}while(x!=y);
}
} void init(){
cnt=tot=ind=top=;
memset(head,-,sizeof head);
memset(dfn,,sizeof dfn);
memset(low,,sizeof low);
memset(ins,,sizeof ins);
} int main(){
while(cin>>n>>m){
init();
for(int i=;i<n;i++){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
a<<=,b<<=,c<<=;
add(a^,b),add(a^,c);
add(b^,a),add(c^,a);
}
for(int i=;i<m;i++){
int a,b;
scanf("%d%d",&a,&b);
a<<=,b<<=;
add(a,b^),add(b,a^);
}
for(int i=;i<**n;i++)
if(!dfn[i])tarjan(i); int flag=;
for(int i=;i<*n;i++)
if(id[i*]==id[i*+]){
puts("no");
flag=;
break;
}
if(!flag)puts("yes");
}
return ;
}

2-sat——hdu3062的更多相关文章

  1. 2-SAT(HDU-3062 party)

    2-SAT(HDU-3062 party) 解决问题类型: 书本定义:给一个布尔方程,判断是否存在一组解使整个方程为真,被称为布尔方程可满足性问题(SAT) 因为本题只有0,1(丈夫 妻子只能去一个人 ...

  2. 多边形碰撞 -- SAT方法

    检测凸多边形碰撞的一种简单的方法是SAT(Separating Axis Theorem),即分离轴定理. 原理:将多边形投影到一条向量上,看这两个多边形的投影是否重叠.如果不重叠,则认为这两个多边形 ...

  3. POJ 3678 Katu Puzzle(2 - SAT) - from lanshui_Yang

    Description Katu Puzzle is presented as a directed graph G(V, E) with each edge e(a, b) labeled by a ...

  4. Map Labeler POJ - 2296(2 - sat 具体关系建边)

    题意: 给出n个点  让求这n个点所能建成的正方形的最大边长,要求不覆盖,且这n个点在正方形上或下边的中点位置 解析: 当然是二分,但建图就有点还行..比较难想..行吧...我太垃圾... 2 - s ...

  5. HDU3062&&HDU1814

    Preface 两道2-SAT模板题. HDU3062 看题目就一眼2-SAT.一对夫妻看成一个变量,之间的矛盾可以看成限制. 考虑不同席的限制,相当于选了\(i\)就不选\(j\),即必选\(j'\ ...

  6. 学习笔记(two sat)

    关于two sat算法 两篇很好的论文由对称性解2-SAT问题(伍昱), 赵爽 2-sat解法浅析(pdf). 一些题目的题解 poj 3207 poj 3678 poj 3683 poj 3648 ...

  7. LA 3211 飞机调度(2—SAT)

    https://vjudge.net/problem/UVALive-3211 题意: 有n架飞机需要着陆,每架飞机都可以选择“早着陆”和“晚着陆”两种方式之一,且必须选择一种,第i架飞机的早着陆时间 ...

  8. HIT 1917 2—SAT

    题目大意:一国有n个党派,每个党派在议会中都有2个代表, 现要组建和平委员会,要从每个党派在议会的代表中选出1人,一共n人组成和平委员会. 已知有一些代表之间存在仇恨,也就是说他们不能同时被选为和平委 ...

  9. 2 - sat 模板(自用)

    2-sat一个变量两种状态符合条件的状态建边找强连通,两两成立1 - n 为第一状态(n + 1) - (n + n) 为第二状态 例题模板 链接一  POJ 3207 Ikki's Story IV ...

  10. SAT考试里最难的数学题? · 三只猫的温暖

    问题 今天无意中在Quora上看到有人贴出来一道号称是SAT里最难的一道数学题,一下子勾起了我的兴趣.于是拿起笔来写写画画,花了差不多十五分钟搞定.觉得有点意思,决定把解题过程记下来.原帖的图太小,我 ...

随机推荐

  1. jquery click事件失效

    除了最基本的语法错误,还可能是因为,元素根本点击不到. z-index:99;

  2. Python3 From Zero——{最初的意识:007~函数}

    一.编写可接受任意数量参数的函数:*.** >>> def test(x, *args, y, **kwargs): ... pass ... >>> test(1 ...

  3. python中面向对象

    一.Python经典类与新类 经典类:如果没有直接或间接的子类化一个对象,也就是说如果没有指定一个父类,或者是如果子类化的基本类没有父类,那么就定义了经典类: class classics: 'def ...

  4. Nginx+win10安装配置

    一.前言 Nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx可以进行反向代理.负载均衡.HTTP服务器(动静分离).正向代 ...

  5. 007-Java可变个数形参重载【数组和...】

    重载方法时,可变个数形参的方法有两种方式 数组重载 ...重载 对两种方法,其实是一致的,示例如下: public class MethodArgsTest { //可变个数形参的格式:数据类型... ...

  6. JDBC_数据库连接池c3p0

    /** * @Description: TODO(这里用一句话描述这个类的作用) * @Author aikang * @Date 2019/8/26 20:12 */ /* 1.数据库连接池: 1. ...

  7. Git的配置及克隆项目到本地

  8. ssl checker

    ssl checker showThis server is vulnerable to the POODLE attack. If possible, disable SSL 3 t` POODLE ...

  9. C/C++ ShowWindow()

    { ShowWindow(HWND,0);//不显示窗口 }

  10. 阿里云 Aliplayer高级功能介绍(三):多字幕

    基本介绍 国际化场景下面,播放器支持多字幕,可以有效解决视频的传播障碍难题,该功能适用于视频内容在全球范围内推广,阿里云的媒体处理服务提供接口可以生成多字幕,现在先看一下具体的效果: WebVTT格式 ...