AT_kupc2021_k Three Coloring

题目描述

有 $N$ 面墙。现在要将每面墙涂成红色、绿色或蓝色中的一种颜色。 给出 $M$ 个条件。第 $i$ 个条件由整数 $a_i, b_i$ 和字符 $x_i, y_i$ 给出,表示: - 当第 $a_i$ 面墙被涂成颜色 $x_i$ 时,第 $b_i$ 面墙不能被涂成颜色 $y_i$。 其中,$x_i, y_i$ 分别为字符 `R`、`G`、`B` 中的一个,分别表示红色、绿色和蓝色。 请计算满足所有 $M$ 个条件的涂色方案有多少种。

输入格式

输入通过标准输入按以下格式给出: > $N$ $M$ > $a_1$ $x_1$ $b_1$ $y_1$ > $\vdots$ > $a_M$ $x_M$ $b_M$ $y_M$

输出格式

请输出一个整数,表示满足条件的涂色方案数。

说明/提示

### 限制条件 - $1 \leq N \leq 22$ - $0 \leq M \leq 9 \times \frac{N(N-1)}{2}$ - $1 \leq a_i < b_i \leq N$ - $x_i, y_i$ 分别为字符 `R`、`G`、`B` 中的一个 - 当 $i \neq j$ 时,$(a_i, x_i, b_i, y_i) \neq (a_j, x_j, b_j, y_j)$ - $N, M, a_i, b_i$ 均为整数 ### 样例解释 1 当第 $1$ 面墙被涂成红色时,第 $2$ 面墙可以涂成绿色或蓝色。 当第 $1$ 面墙被涂成绿色时,第 $2$ 面墙可以涂成绿色或蓝色。 当第 $1$ 面墙被涂成蓝色时,第 $2$ 面墙可以涂成红色或蓝色。 因此,总共有 $6$ 种涂色方案。 ### 样例解释 2 无论第 $1$ 面墙涂成哪种颜色,都能满足条件。 ### 样例解释 3 请注意防止溢出。 由 ChatGPT 4.1 翻译