卡图难题
提交数: 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) 和 M (0 ≤ M ≤ 1,000,000) 表示顶点数和边数。
接下来包括M行算式,每行三个整数 a (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