原题
题目大意
有一张n个点,m条边的图,每条边上有一个布尔运算符(AND,OR,XOR)和一个布尔值,问是否能在点上填入合适的布尔值,使得任意一条边所连接的两个点的布尔值经过边上的运算符运算后等于边上的布尔值。
分析
将每个点拆成两个点,分别代表取0和取1.
边连接的两个点,一共只有四种状态,即(1,0),(0,1),(0,0),(1,1)。找到不符合条件的状态,就是冲突的地方。这样就回归了2-SAT的基本模型了。
参考代码
|
|
吾生也有涯,而知也无涯
有一张n个点,m条边的图,每条边上有一个布尔运算符(AND,OR,XOR)和一个布尔值,问是否能在点上填入合适的布尔值,使得任意一条边所连接的两个点的布尔值经过边上的运算符运算后等于边上的布尔值。
将每个点拆成两个点,分别代表取0和取1.
边连接的两个点,一共只有四种状态,即(1,0),(0,1),(0,0),(1,1)。找到不符合条件的状态,就是冲突的地方。这样就回归了2-SAT的基本模型了。
|
|