洛谷4782 【模板】2-SAT 问题
原题链接
\(2-SAT\)模板
#include<cstdio>
using namespace std;
const int N = 2e6 + 10;
int fi[N], di[N], ne[N], dfn[N], low[N], st[N], bl[N], l, tp, ti, SCC;
bool v[N];
inline int re()
{
	int x = 0;
	char c = getchar();
	bool p = 0;
	for (; c < '0' || c > '9'; c = getchar())
		p |= c == '-';
	for (; c >= '0' && c <= '9'; c = getchar())
		x = x * 10 + c - '0';
	return p ? -x : x;
}
inline void add(int x, int y)
{
	di[++l] = y;
	ne[l] = fi[x];
	fi[x] = l;
}
inline int minn(int x, int y)
{
	return x < y ? x : y;
}
void tarjan(int x)
{
	int i, y;
	dfn[x] = low[x] = ++ti;
	st[++tp] = x;
	v[x] = 1;
	for (i = fi[x]; i; i = ne[i])
	{
		y = di[i];
		if (!dfn[y])
		{
			tarjan(y);
			low[x] = minn(low[x], low[y]);
		}
		else
			if (v[y])
				low[x] = minn(low[x], dfn[y]);
	}
	if (!(dfn[x] ^ low[x]))
	{
		++SCC;
		do
		{
			y = st[tp--];
			bl[y] = SCC;
			v[y] = 0;
		} while (x ^ y);
	}
}
int main()
{
	int i, n, m, x, y, a, b;
	n = re();
	m = re();
	for (i = 1; i <= m; i++)
	{
		x = re();
		a = re();
		y = re();
		b = re();
		add(x + (a ^ 1) * n, y + b * n);
		add(y + (b ^ 1) * n, x + a * n);
	}
	for (i = 1; i <= (n << 1); i++)
		if (!dfn[i])
			tarjan(i);
	for (i = 1; i <= n; i++)
		if (!(bl[i] ^ bl[i + n]))
		{
			printf("IMPOSSIBLE");
			return 0;
		}
	printf("POSSIBLE\n");
	for (i = 1; i <= n; i++)
		printf("%d ", bl[i] > bl[i + n]);
	return 0;
}
												
											洛谷4782 【模板】2-SAT 问题的更多相关文章
- 洛谷P3373 [模板]线段树 2(区间增减.乘 区间求和)
		
To 洛谷.3373 [模板]线段树2 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.将某区间每一个数乘上x 3.求出某区间每一个数的和 输入输出格式 输入格 ...
 - 洛谷P3375 [模板]KMP字符串匹配
		
To 洛谷.3375 KMP字符串匹配 题目描述 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置. 为了减少骗分的情况,接下来还要输出子串的前缀数组next.如果 ...
 - LCT总结——概念篇+洛谷P3690[模板]Link Cut Tree(动态树)(LCT,Splay)
		
为了优化体验(其实是强迫症),蒟蒻把总结拆成了两篇,方便不同学习阶段的Dalao们切换. LCT总结--应用篇戳这里 概念.性质简述 首先介绍一下链剖分的概念(感谢laofu的讲课) 链剖分,是指一类 ...
 - 【AC自动机】洛谷三道模板题
		
[题目链接] https://www.luogu.org/problem/P3808 [题意] 给定n个模式串和1个文本串,求有多少个模式串在文本串里出现过. [题解] 不再介绍基础知识了,就是裸的模 ...
 - 洛谷-P5357-【模板】AC自动机(二次加强版)
		
题目传送门 -------------------------------------- 过年在家无聊补一下这周做的几道AC自动机的模板题 sol:AC自动机,还是要解决跳fail边产生的重复访问,但 ...
 - 洛谷.1919.[模板]A*B Problem升级版(FFT)
		
题目链接:洛谷.BZOJ2179 //将乘数拆成 a0*10^n + a1*10^(n-1) + ... + a_n-1的形式 //可以发现多项式乘法就模拟了竖式乘法 所以用FFT即可 注意处理进位 ...
 - 洛谷.3803.[模板]多项式乘法(FFT)
		
题目链接:洛谷.LOJ. FFT相关:快速傅里叶变换(FFT)详解.FFT总结.从多项式乘法到快速傅里叶变换. 5.4 又看了一遍,这个也不错. 2019.3.7 叕看了一遍,推荐这个. #inclu ...
 - 洛谷.3803.[模板]多项式乘法(NTT)
		
题目链接:洛谷.LOJ. 为什么和那些差那么多啊.. 在这里记一下原根 Definition 阶 若\(a,p\)互质,且\(p>1\),我们称使\(a^n\equiv 1\ (mod\ p)\ ...
 - 洛谷P3385 [模板]负环 [SPFA]
		
题目传送门 题目描述 暴力枚举/SPFA/Bellman-ford/奇怪的贪心/超神搜索 输入输出格式 输入格式: 第一行一个正整数T表示数据组数,对于每组数据: 第一行两个正整数N M,表示图有N个 ...
 - [洛谷P3806] [模板] 点分治1
		
洛谷 P3806 传送门 这个点分治都不用减掉子树里的了,直接搞就行了. 注意第63行 if(qu[k]>=buf[j]) 不能不写,也不能写成>. 因为这个WA了半天...... 如果m ...
 
随机推荐
- 对于“2017面向对象程序设计(Java)第五周工作总结”存在问题的反馈及本周教学计划
			
一:问题反馈 “上周我们学习的新内容主要是第五章,并对第四章内容做了巩固.从学生上交的实验报告完成情况以及学习Java心得博客中的反馈可以看出,学生对构造器.重载.超类.多态.抽象类这几个概念理解的不 ...
 - cekephp 事务处理
			
$sw = $this->Orders->getDataSource(); $sw->begin(); $this->Orders->commit() $this-> ...
 - yum被锁定:Another app is currently holding the yum lock; waiting for it to exit…
			
yum被锁定无法使用,错误信息截图如下: 解决方法:rm -rf /var/run/yum.pid 来强行解除锁定,然后你的yum就可以运行了
 - 安装好kali要做的事
			
更换更新源 vim /etc/apt/sources.list #中科大deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free c ...
 - Appium 1.6安装步骤
			
原来用的Appium1.5.3GUI版本,那为什么升级呢? 为了兼容最新版本的iOS10和Android7 Xcode8升级后,将不支持使用UIAutomation,而是改为使用XCUITest了,并 ...
 - SRVE0255E: 尚未定义要处理 ***的 Web 组/虚拟主机。
			
原因: 访问的端口未设置,因此无法访问 解决办法: 1.设置端口 控制台-环境-虚拟主机-default_host-主机别名-新建 主机名根据实际情况填写 笔者这里填如下 2.设置好端口后重启对应服务 ...
 - 分组背包模板题 hdu1712
			
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1712 第一次接触分组背包,参考博客:https://blog.csdn.net/yu121380/ar ...
 - python网络爬虫《http和https协议》
			
一.HTTP协议 1.官方概念: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文 ...
 - Jenkins安装部署(二)
			
Jenkins配置 一.修改jenkins家目录 由于jenkins在启动个之后会默认将所有的构建应用在家目录中创建一遍,为了合理化服务器资源,重新定义jenkins家目录. 在tomcat的cata ...
 - phpStudy安装教程
			
1.在phpStudy官网下载安装包(http://phpstudy.php.cn/)2.解压安装后,若提示没有“VC9.VC11.VC14运行库,注意是X86 32位”,则在phpStudy下载对应 ...