[POJ3678] Katu Puzzle | 2-SAT 入门

简介: Description Katu Puzzle is presented as a directed graph G ( V , E ) with each edge e ( a , b ) labeled by a boolean operator op (oneofAND,OR,XOR) and an integer c ( 0 ≤ c ≤ 1 ) . One Katu is solvable if one can find each vertex Vi a value X i ( 0 ≤ X i ≤ 1 )

Description
Katu Puzzle is presented as a directed graph G ( V , E ) with each edge e ( a , b ) labeled by a boolean operator op (oneofAND,OR,XOR) and an integer c ( 0 ≤ c ≤ 1 ) . One Katu is solvable if one can find each vertex Vi a value X i ( 0 ≤ X i ≤ 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 ) (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

相关文章
|
编译器 Linux PHP
C语言从入门到实战——预处理详解
C语言预处理是C语言编译过程的一个阶段,它在编译之前对源代码进行一系列的处理操作,包括宏替换、文件包含、条件编译等,最终生成经过预处理的代码,然后再进行编译。
226 0
在 Flutter 中如何使用 ChangeNotifierProvider 实现数据共享?
在 Flutter 中如何使用 ChangeNotifierProvider 实现数据共享?
|
达摩院 算法 决策智能
解决背包问题:组合优化的应用与建模方法
组合优化是数学优化的一支,专注于从有限集合中选取元素的最优化问题。它涉及将一组对象组合在一起,以满足特定条件并优化某个目标函数,即在所有可能的组合中找到最有利的一个。 本文将以一个简化的背包问题为例,来讲解采用数学规划的方法来解决背包这个组合优化问题。
|
Python
Python-字符串与注释
Python-字符串与注释
73 1
|
存储 搜索推荐 程序员
配置Picgo图床之COS、OSS、Github图床
配置Picgo图床之COS、OSS、Github图床
|
C++
C++中的friend 关键字
# C++中的友元 `friend` > 友元是用关键字声明的函数或类 类的非成员函数可以访问类的保护成员和私有成员(如果它被声明为类的友元),这是通过在外部函数声明的前面加上关键字`friend`完成的 声明方式 ```cpp friend <类型><友元函数名>(<参数表>); ``` ## 友元函数 > 友元函数只是一个普通的函数,而并非一个类的成员函数,它可以在任意地方调用,友元函数通过对象名来访问该类的私有成员或共有成员。 ```c++ #include<iostream> using namespace std; class MYclass { public:
162 0
|
Java 编译器
【Java实现】合并两个有序链表
题目入口📌:合并两个有序链表
【Java实现】合并两个有序链表
|
Oracle Java 关系型数据库
JDBC 编程 (使用Java操作MySQL数据库)(一)
JDBC 编程 (使用Java操作MySQL数据库)
JDBC 编程 (使用Java操作MySQL数据库)(一)
|
存储 Java C语言
【Java课堂】String类(一)
对于刚学过C语言的小伙伴来说,String类可能比较陌生。在C语言中我们可以用指针来表示一串字符 如 char* p = &quot;abcd&quot; ,而在Java中我们可以用String类来直接表示 String p = &quot;abcd&quot;。
【Java课堂】String类(一)
【Java实现】移除链表元素
【Java实现】移除链表元素
【Java实现】移除链表元素