Not difficult, the only problem is how to deal with give 0/1 to the var.

Tarjan offers the reverse topological order. For each connected, the earlier one in the order ought to be 0.//I'm not sure, for truth.

int dfn[N],dfnIndex,low[N],vis[N];
int sta[N],top;
int scc[N],sccIndex;
inline void Tarjan(int u){
dfn[u] = low[u] = ++dfnIndex;
sta[++top] = u;
vis[u] = true;
for(register int i = head[u]; i; i = e[i].nxt){
int v = e[i].pre;
if(!dfn[v]){
Tarjan(v);
low[u] = Min(low[u], low[v]);
}
else if(vis[v]){
low[u] = Min(low[u], dfn[v]);//letter
}
}
if(dfn[u] == low[u]){
++sccIndex;
do{
scc[sta[top]] = sccIndex;
vis[sta[top]] = false;
}while(sta[top--] != u);
}
} inline bool Judge(){
R(i,1,n){
if(scc[i<<1] == scc[i<<1|1])
return false;
}
return true;
} int main(){
int m;
io >> n >> m;
R(i,1,m){
int a,b,c,d;
io >> a >> b >> c >> d;
add(a << 1 | (b ^ 1), c << 1 | d);
add(c << 1 | (d ^ 1), a << 1 | b);
} n = n << 1 | 1;
R(i,2,n){
if(!dfn[i])
Tarjan(i);
}
n = (n - 1) >> 1; if(Judge() == true){
printf("POSSIBLE\n");
}
else{
printf("IMPOSSIBLE\n");
return 0;
} R(i,1,n){
//if bool varible x appears earlier than -x, let it be false//alright, ignore this, I haven't understand it yet.
printf("%d ", scc[i<<1] > scc[i<<1|1]); }
}

LuoguP4782 【模板】2-SAT 问题 (2-SAT)的更多相关文章

  1. luoguP4782 [模板]2-SAT问题

    https://www.luogu.org/problemnew/show/P4782 2-SAT模板,输出方案只需判断 \(a\) 和 \(a + n\) 两个点所在的 scc 编号大小就可以了 # ...

  2. 《Linux命令行与shell脚本编程大全》第二十章 正则表达式

    20.1 什么是正则表达式 20.1.1 定义 正则表达式是你所定义的模式模板.linux工具可以用它来过滤文本. 正则表达式利用通配符来描述数据流中第一个或多个字符. 正则表达式模式含有文本或特殊字 ...

  3. DirectX11 With Windows SDK--11 混合状态与光栅化状态

    前言 虽然这一部分的内容主要偏向于混合(Blending),但这里还需提及一下,关于渲染管线可以绑定的状态主要有如下四种: 光栅化状态(光栅化阶段) 采样器状态(像素着色阶段) 混合状态(输出合并阶段 ...

  4. MySQL-MHA集群部署(binlog复制)

    MHA的理论知识网上有很多教程,这里不会说明:仅推荐博客链接! MHA的理论说明:http://www.ywnds.com/?p=8094 MHA的安装包需要在google上面下载,或者就是csdn上 ...

  5. 浅谈2-SAT

    引入: 相信大家都了解过差分约束系统.差分约束系统的大体意思就是给出一些有某种关系的变量,问你是否有某种赋值使得这些关系全部成立 其实\(2-SAT\)的题目描述和这个很像(虽然解法不一样) 那么\( ...

  6. DirectX11 With Windows SDK--11 混合状态

    原文:DirectX11 With Windows SDK--11 混合状态 前言 这一章会着重讲述混合状态,在下一章则会讲述深度/模板状态 DirectX11 With Windows SDK完整目 ...

  7. Enter password for default keyring to unlock

    file /home/ok/.gnome2/keyrings/login.keyring /home/ok/.gnome2/keyrings/login.keyring: GNOME keyring, ...

  8. 原来还有这样的记词方法_Java版记不规则动词_博主推荐

    昨天在看一本英语书的不规则动词的时候,突然产生的灵感:就是想把这样记单词简单方式,用程序代码实现,然后,使用户可以与之进行交互 这样,在用户背不规则动词的时候就会轻松把它给记住.基于这一点,于是我就思 ...

  9. FTP常用故障代码注解

    FTP错误列表 出处:http://bbs.enet.com.cn/UserControl?act=13&threadID 作者: |秒杀』| 详细的FTP错误列表 Restart marke ...

  10. python中数据的变量和字符串的常用使用方法

    1.查看变量类型: a=2 print(a,type(a)) print的用法:在print后面跟多个输出,可以用逗号分隔. 回收变量名,如把a存储不同的数据,你不需要删除原有变量就可以直接赋值 2. ...

随机推荐

  1. Pycharm连接远程服务器并保持文件夹同步

    pycharm版本2021 服务器版本 Ubuntu 18 1.连接远程服务器 xxx这部省略了,因为之前就已经连接上了hh,后面用到再补充. 2.保持文件夹同步 1.首先在本地(windows环境创 ...

  2. 《HALCON数字图像处理》第六章笔记

    目录 第六章 图像增强 图像增强的概念和分类 灰度变换 直方图处理 图像的平滑 图像的锐化 图像的彩色增强 我在Gitee上建了个仓库,会将学习书本的时候打的一些代码上传上去,笔记中所有代码都在仓库里 ...

  3. 这篇SpringCloud GateWay 详解,你用的到

    点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 项目源码地址:公众号回复 sentinel,即可免费获取源码 背景 在微服务架构中,通常一个系统 ...

  4. Redis之Lua的应用(四)

    一.什么是Lua脚本 Lua是一个高效的轻量级脚本语言(和JavaScript类似),用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能.Lu ...

  5. 在jupyternotebook中写C/C++

    在jupyter notebook中写C/C++,最大的好处就是不用写main()函数,直接调用写好的函数即可执行. #include<stdio.h> int sum(int a,int ...

  6. 使用.NetCore自带的后台作业,出入队简单模拟生产者消费者处理请求响应的数据

    环境:Core:3.1的项目 说明:由于该方案为个人测试项目,重启时队列中的部分数据很可能会丢失, 对数据有要求的该方案不适用,不能照搬需要持久化处理, 另外发布到Linux Docker中通常不会自 ...

  7. 不可思议的返回功能——python

    今天给大家分享 3 个比较冷门的知识.教程点这(https://jq.qq.com/?_wv=1027&k=zLK3I0M5) 第一个:神奇的字典键 (https://jq.qq.com/?_ ...

  8. [ARC087D] Squirrel Migration 补题记录

    题目链接 简要题意: 给你一个\(N\)个节点的树,求一个\(1\cdots N\)的排列\((p_1,p_2,\cdots p_N)\) ,使得\(\sum dist(i,p_i)\)最大. 求这样 ...

  9. vue 项目知识

    Vue使用 Vue 源码解析 Vue SSR 如何调试Vue 源码 如何学习开源框架---> 从它的第一次commit 开始看 国外的文章 大致了解写框架的过程(英文关键字) 找到关键---&g ...

  10. ubuntu 20.04 安装 vim8.2

    由于ubuntu 20.04自带的vim版本比较老了,有些新装的插件适配不上,所以需要安装最新版本的vim.在网上找了很久也没有比较官方的安装教程所以记录一下. 安装依赖库 sudo apt inst ...