卡图难题

提交数: 8, 通过率: 25%, 平均分: 32.5

题目描述:

有N个变量X1~Xn,每个变量的可能取值0或1.给定M个算式,每个算式形如Xa op Xb = c,其中a, b是两个变量的编号,c是数字0或1, op是and , or , xor 三个位运算之一。求是否存在对每个变量的合法赋值, 使所有算式成立。

AND 0 1
0 0 0
1 0 1
OR 0 1
0 0 1
1 1 1
XOR 0 1
0 0 1
1 1 0

输入格式:

第一行包括两个整数 N (1 ≤ N ≤ 1000) 和 (0 ≤ M ≤ 1,000,000) 表示顶点数和边数。

接下来包括M行算式,每行三个整数 (1 ≤ a <= N), b(1 ≤ b <= N), c ,以及一个操作符 op ,它们一起描述一个算式。

输出格式:

输出一行"YES" 或 "NO"。

样例输入:

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

样例输出:

YES

提示:

样例解释:

X0 = 1, X1 = 1, X2 = 0, X3 = 1。

1 <= n <=1000, 1<= m <=106

时间限制: 2000ms
空间限制: 256MB