#aBC199D. [ABC199D] RGB Coloring 2

[ABC199D] RGB Coloring 2

AT_abc199_d [ABC199D] RGB Coloring 2

题目描述

有一个包含 NN 个顶点和 MM 条边的简单无向图。顶点编号为 11NN,边编号为 11MM
ii 条边连接顶点 AiA_i 和顶点 BiB_i
请计算有多少种方法可以用红色、绿色、蓝色这三种颜色中的任意一种对每个顶点进行染色,并且满足以下条件:

  • 直接通过一条边相连的两个顶点必须被染成不同的颜色。

注意,即使有的颜色没有被使用也没有关系。

输入格式

输入以如下格式从标准输入读入。

NN MM
A1A_1 B1B_1
A2A_2 B2B_2
A3A_3 B3B_3
 \hspace{15pt}\ \vdots
AMA_M BMB_M

输出格式

请输出答案。

输入输出样例 #1

输入 #1

3 3
1 2
2 3
3 1

输出 #1

6

输入输出样例 #2

输入 #2

3 0

输出 #2

27

输入输出样例 #3

输入 #3

4 6
1 2
2 3
3 4
2 4
1 3
1 4

输出 #3

0

输入输出样例 #4

输入 #4

20 0

输出 #4

3486784401

说明/提示

限制条件

  • 1N201 \leq N \leq 20
  • 0MN(N1)20 \leq M \leq \frac{N(N-1)}{2}
  • 1AiN1 \leq A_i \leq N
  • 1BiN1 \leq B_i \leq N
  • 给定的图是简单图(不包含重边和自环)

样例解释 1

将顶点 1,2,31, 2, 3 的颜色分别记为 c1,c2,c3c_1, c_2, c_3,用 RGB 分别表示红色、绿色、蓝色,则满足条件的染色方法有以下 66 种:

  • c1c2c3=c_1c_2c_3 = RGB
  • c1c2c3=c_1c_2c_3 = RBG
  • c1c2c3=c_1c_2c_3 = GRB
  • c1c2c3=c_1c_2c_3 = GBR
  • c1c2c3=c_1c_2c_3 = BRG
  • c1c2c3=c_1c_2c_3 = BGR

样例解释 2

由于没有边,因此每个顶点的颜色可以自由选择。

样例解释 3

有些情况下不存在满足条件的染色方法。

样例解释 4

答案可能超过 3232 位有符号整数的范围。

由 ChatGPT 4.1 翻译