#p4782. 【模板】2-SAT
【模板】2-SAT
题目描述
有 个布尔变量 ,另有 个需要满足的条件,每个条件的形式都是 「 为 true / false 或 为 true / false」。
比如 「 为真或 为假」、「 为假或 为假」。
2-SAT 问题的目标是给每个变量赋值使得所有条件得到满足。
输入格式
第一行两个整数 和 ,意义如题面所述。
接下来 行每行 个整数 、、、,表示「 为 或 为 」()。
输出格式
如无解,输出 IMPOSSIBLE;
否则输出 POSSIBLE,下一行 个整数 (),表示构造出的解。
输入示例 1
3 1
1 1 3 0
输出示例 1
POSSIBLE
1 0 0
示例 1 说明
条件为「 为真 或 为假」,输出的赋值 满足该条件。
如果输出 1 1 1 或 0 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 说明
四个条件穷举了 的所有 种取值组合中应有的情况,但两两矛盾,无可行解。
约束条件
- 所有输入值均为整数
提示
- 答案不唯一时,输出任意合法解均被接受(Special Judge)。
- 注意数据规模较大,建议使用快速读入。