#p4782. 【模板】2-SAT

    ID: 3665 Type: Default 1000ms 256MiB Tried: 8 Accepted: 1 Difficulty: 5 Uploaded By: Tags>2-SATTarjan强连通分量图论模板

【模板】2-SAT

题目描述

nn 个布尔变量 x1xnx_1 \sim x_n,另有 mm 个需要满足的条件,每个条件的形式都是 xix_itrue / falsexjx_jtrue / false

比如 「x1x_1 为真或 x3x_3 为假」、「x7x_7 为假或 x2x_2 为假」。

2-SAT 问题的目标是给每个变量赋值使得所有条件得到满足。

输入格式

第一行两个整数 nnmm,意义如题面所述。

接下来 mm 行每行 44 个整数 iiaajjbb,表示「xix_iaaxjx_jbb」(a,b{0,1}a, b \in \{0, 1\})。

输出格式

如无解,输出 IMPOSSIBLE

否则输出 POSSIBLE,下一行 nn 个整数 x1xnx_1 \sim x_nxi{0,1}x_i \in \{0, 1\}),表示构造出的解。

输入示例 1

3 1
1 1 3 0

输出示例 1

POSSIBLE
1 0 0

示例 1 说明

条件为「x1x_1 为真 或 x3x_3 为假」,输出的赋值 x1=1,x2=0,x3=0x_1=1, x_2=0, x_3=0 满足该条件。

如果输出 1 1 10 0 0 等其它合法方案,也会被判定为正确(本题使用 Special Judge)。

输入示例 2

2 4
1 1 2 1
1 0 2 0
1 0 2 1
1 1 2 0

输出示例 2

IMPOSSIBLE

示例 2 说明

四个条件穷举了 x1,x2x_1, x_2 的所有 44 种取值组合中应有的情况,但两两矛盾,无可行解。

约束条件

  • 1n,m1061 \le n, m \le 10^6
  • 1i,jn1 \le i, j \le n
  • a,b{0,1}a, b \in \{0, 1\}
  • 所有输入值均为整数

提示

  • 答案不唯一时,输出任意合法解均被接受(Special Judge)。
  • 注意数据规模较大,建议使用快速读入。