#P9798. [NERC2018] Harder Satisfiability
[NERC2018] Harder Satisfiability
题目背景
翻译自 NERC 2018 H 题。
题目描述
我们定义一个“完全量化的布尔类型的 2-CNF 公式”(下简称 2-CNF)是以 构成的, 只有两种,一种是“通用量词” ,另一种是“存在量词” 。然后 是一个 子句的 ( 运算) 的连词( 运算),其中 和 不一定不同且不一定是否定(为 )。由于 2-CNF 公式是给定的,所以并没有自由变量(即答案固定为 或 )。
至于计算 2-CNF 公式的值,我们可以使用一个简单的递归算法来求:
-
如果没有量词(即 或 ),则返回剩余表达式的返回值。
-
否则,我们使用递归计算公式:,此处 。
-
如果当前符号为 ,则返回 ( 运算)。否则符号为 返回 。
输入格式
第一行是一个整数 ,表示数据组数。
接下来 组数据,每组数据第一行两个整数 和 , 表示量词的长度, 表示在 中的元素个数。
然后一行,一串长度为 的字符串 ,如果 A
,则 ,否则若 E
,则 。
接下来 行,一行两个整数 ,如果 则第 个变量是 ,如果 则第 个变量是 , 同理。
输出格式
对于每组数据,如果 2-CNF 公式为真输出 TRUE
,否则输出 FALSE
。
3
2 2
AE
1 -2
-1 2
2 2
EA
1 -2
-1 2
3 2
AEA
1 -2
-1 -3
TRUE
FALSE
FALSE
提示
数据保证 ,,。
第一个 2-CNF 公式可以化简为 $\forall x_1 \exists x_2(x_1 \lor \overline{x_2}) \land (\overline{x_1} \lor x_2) = \forall x_1 \exists x_2 x_1 \oplus x_2$,对于任意的 都存在 使得答案为真。
第二个 2-CNF 改变了公式的顺序,对于任意的 ,都可以选择 ,使得表达式为 FALSE
。
第三个表达式是 $\forall x_1 \exists x_2 \forall x_3 (x_1 \lor \overline{x_2}) \land (\overline{x_1} \lor \overline{x_3})$,如果令 ,,则没有 的值可以使得句子赋值为真,所以公式为假。