#yXTTJlydlt60x6704. 卡图难题 Katu Puzzle

卡图难题 Katu Puzzle

好的,这是整理好的题面,不含解题思路,只包含样例解释。


题目描述

NN 个变量 X0XN1X_0 \sim X_{N-1},每个变量的可能取值为 0011

给定 MM 个算式,每个算式形如 Xa op Xb=cX_a\ \text{op}\ X_b = c,其中 a,ba,b 是变量编号,cc 是数字 0011op\text{op}AND, OR, XOR\texttt{AND, OR, XOR} 三个位运算之一。

求是否存在对每个变量的合法赋值,使所有算式都成立。


输入格式

第一行两个整数 NNMM
接下来 MM 行,每行包含三个整数 a,b,ca,b,c,以及一个字符串表示位运算(AND, OR, XOR\texttt{AND, OR, XOR} 中的一个)。

输出格式

输出结果,如果存在则输出 YES\texttt{YES},否则输出 NO\texttt{NO}

数据范围

  • 1N10001 \le N \le 1000
  • 1M1061 \le M \le 10^6

输入样例

4 4
0 1 1 AND
1 2 1 OR
3 2 0 AND
3 0 0 XOR

输出样例

YES

样例解释

N=4N=4 个变量 X0,X1,X2,X3X_0, X_1, X_2, X_3M=4M=4 个算式:

  1. X0 AND X1=1X_0\ \text{AND}\ X_1 = 1
    含义:X0X_0X1X_1 同时为 1 时,AND 结果才是 1,所以 X0=1,X1=1X_0=1, X_1=1

  2. X1 OR X2=1X_1\ \text{OR}\ X_2 = 1
    含义:X1X_1X2X_2 至少一个为 1 时,OR 结果为 1。
    由式 1 知 X1=1X_1=1,已经满足 OR 条件,所以 X2X_2 可以是 0 或 1。

  3. X3 AND X2=0X_3\ \text{AND}\ X_2 = 0
    含义:X3X_3X2X_2 不能同时为 1。
    X2=1X_2=1,则 X3X_3 必须为 0;若 X2=0X_2=0,则 X3X_3 任意。

  4. X3 XOR X0=0X_3\ \text{XOR}\ X_0 = 0
    含义:X3X_3X0X_0 必须相同(XOR 结果为 0 表示两者相等)。
    由式 1 知 X0=1X_0=1,所以 X3=1X_3=1


检查一致性

由式 4:X3=1X_3=1
由式 3:X3=1X_3=1X2X_2 必须为 0(否则 AND 为 1)。
由式 2:X1=1X_1=1X2=0X_2=0,OR 为 1 ✅
由式 1:X0=1,X1=1X_0=1, X_1=1

得到一组赋值:X0=1,X1=1,X2=0,X3=1X_0=1, X_1=1, X_2=0, X_3=1,满足所有算式。

所以存在,输出 YES\texttt{YES}