2-SAT就是给出$m$个限制表示$x==val_x || y==val_y$

求出满足的解

每个点拆成两个点,如果$x$不满足则$y$一定满足,$y$不满足同理。这样我们连边,然后$tarjan$即可

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<queue>
#include<vector>
#include<map>
#include<set>
#define ll long long
#define db double
#define inf 2139062143
#define MAXN 2001000
#define rep(i,s,t) for(register int i=(s),i##__end=(t);i<=i##__end;++i)
#define dwn(i,s,t) for(register int i=(s),i##__end=(t);i>=i##__end;--i)
#define ren for(register int i=fst[x];i;i=nxt[i])
#define pb(i,x) vec[i].push_back(x)
#define pls(a,b) (a+b)%MOD
#define mns(a,b) (a-b+MOD)%MOD
#define mul(a,b) (1LL*(a)*(b))%MOD
using namespace std;
inline int read()
{
int x=,f=;char ch=getchar();
while(!isdigit(ch)) {if(ch=='-') f=-;ch=getchar();}
while(isdigit(ch)) {x=x*+ch-'';ch=getchar();}
return x*f;
}
int n,m,nxt[MAXN<<],fst[MAXN],to[MAXN<<],cnt;
int dfn[MAXN],low[MAXN],bl[MAXN],stp,st[MAXN],top,scc;
void add(int u,int v) {nxt[++cnt]=fst[u],fst[u]=cnt,to[cnt]=v;}
void tarjan(int x)
{
st[++top]=x,dfn[x]=low[x]=++stp;
ren if(!dfn[to[i]]) {tarjan(to[i]);low[x]=min(low[x],low[to[i]]);}
else if(!bl[to[i]]) low[x]=min(low[x],dfn[to[i]]);
if(low[x]==dfn[x])
{scc++;int now=;while(now!=x) now=st[top--],bl[now]=scc;}
}
int main()
{
n=read(),m=read();int a,b,x,y;rep(i,,m)
a=read(),x=read(),b=read(),y=read(),
add(a+(^x)*n,b+y*n),add(b+(^y)*n,a+x*n);
rep(i,,n<<) if(!dfn[i]) tarjan(i);
rep(i,,n) if(bl[i]==bl[i+n]) return puts("IMPOSSIBLE"),;puts("POSSIBLE");
rep(i,,n) printf("%d ",bl[i]>bl[i+n]);
}

最新文章

  1. Tomcat如何添加管理员
  2. Java查询网址
  3. C# mongodb [下]
  4. 批量下载QQ空间日志
  5. 【原】Redis入门教程
  6. Asp.net Mvc 第一回 安装,并使ASP.NET MVC页面运行起来
  7. 经常会用到的js函数
  8. 基于visual Studio2013解决C语言竞赛题之0514单词统计
  9. APK扩展文件介绍、功能及用法
  10. Android 实现用户列表信息的功能,然后选择删除幻灯片删除功能
  11. decompile elf
  12. 【JDK1.8】JDK1.8集合源码阅读——TreeMap(一)
  13. SpringCloud学习之feign
  14. win7系统标准用户恢复administrator账号方法
  15. 注解方式过滤器(Filter)不能过滤Servlet的问题
  16. idea tomcat上传图片,无法显示的问题解决
  17. NTLM
  18. rxjs学习
  19. 普通spring jsp+mybatis项目修改为springboot + jsp +mybatis项目
  20. Linux下which命令使用详解(转)

热门文章

  1. SLAVEOF以后
  2. spring boot -- 无法读取html文件,碰到的坑
  3. 《流畅的Python》一副扑克牌中的难点
  4. jfinal使用idea启动 访问报404 action not found
  5. 中国剩余定理 &amp; 欧拉函数 &amp; 莫比乌斯反演 &amp; 狄利克雷卷积 &amp; 杜教筛
  6. android 图片浏览器滑动切换图片
  7. Mysql 性能优化20个原则(3)
  8. POJ 1260 Pearls (动规)
  9. CMS - 认识目录
  10. SQL server 数据存储过程