运算包含很多种,在计算机中除了算术运算以外,还涉及到了其它运算,比如逻辑运算。逻辑运算包括与(AND)、或(OR)、异或(XOR)等。其运算规则如下:
1 AND 1 = 1 1 OR 1 = 1 1 XOR 1 = 0
1 AND 0 = 0 1 OR 0 = 1 1 XOR 0 = 1
0 AND 1 = 0 0 OR 1 = 1 0 XOR 1 = 1
0 AND 0 = 0 0 OR 0 = 0 0 XOR 0 = 0
现有n个变量d[1]到d[n],每个变量的值非0即1。有m个算式,每个式子形如a b c
op,其中a和b是两个下标,分别代表d[a]和d[b]两个变量的值;c是一个数字,非0即1;op代表一种操作,是AND、OR、XOR其中的一个,算式的含义为:d[a] op d[b] = c。请判断,是否存在一组d[1]到d[n]的赋值,使得m个算式都成立。
第一行两个整数n和m。1≤n≤1000, 0≤m≤1000000
接下来m行,每行三个整字a、b、c和一个操作op,如题目描述所示。
0≤a,
b<n
3 3
0 1 0 AND
1 2 1 OR
0 2 0 XOR
YES
这个序列包含三个整数,当d[0] = 1, d[1] =
0, d[2] = 1时,三个式子d[0] AND d[1] = 0, d[1] OR d[2] = 1,
d[0] XOR d[2] = 0都成立,因此输出YES。