日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图论--2-SAT--poj 3678-Katu Puzzle(模板题)

發布時間:2023/12/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图论--2-SAT--poj 3678-Katu Puzzle(模板题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


Description

Katu Puzzle is presented as a directed graph?G(V,?E) with each edge?e(a,?b) labeled by a boolean operator?op?(one of AND, OR, XOR) and an integer?c?(0 ≤?c?≤ 1). One Katu is solvable if one can find each vertex?Vi?a value?Xi?(0 ≤?Xi?≤ 1) such that for each edge?e(a,?b) labeled by?op?and?c, the following formula holds:

?Xa?op?Xb?=?c

The calculating rules are:

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
Given a Katu Puzzle, your task is to determine whether it is solvable.

Input

The first line contains two integers?N?(1 ≤?N?≤ 1000) and?M,(0 ≤?M?≤ 1,000,000) indicating the number of vertices and edges.
The following?M?lines contain three integers?a?(0 ≤?a?<?N),?b(0 ≤?b?<?N),?c?and an operator?op?each, describing the edges.

Output

Output a line containing "YES" or "NO".

Sample Input

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

YES
Hint

X0?= 1,?X1?= 1,?X2?= 0,?X3?= 1.

題意:給出N個布爾變量,每個變量要么真要么假?,F在給出M個關系,問你是否存在一組解滿足所有條件。

思路:

一:對于AND?

1,c == 1時,則a和b全為真,建邊 !a -> a 和 !b -> b;

2,c == 0時,則a和b至少一個為假,建邊 a -> !b 和 b -> !a;

二:對于OR

1,c == 1時,則a和b至少一個為真,建邊!a -> b 和 !b -> a;

2,c == 0時,則a和b全為假,建邊a -> !a 和 b -> !b;

三:對于XOD

1,c == 1時,則a和b不同,建邊!a -> b 、!b -> a、a -> !b 、 b -> !a;

2,c == 0時,則a和b相同,建邊a -> b 、b -> a、!a -> !b 、 !b -> !a;

建好圖,tarjan求SCC 判斷是否矛盾即可。

總結

以上是生活随笔為你收集整理的图论--2-SAT--poj 3678-Katu Puzzle(模板题)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。