#ATarc062d. [ARC062F] AtCoDeerくんとグラフ色塗り

[ARC062F] AtCoDeerくんとグラフ色塗り

题目描述

有一天,鹿的 AtCoDeer 君捡到了一张由 NN 个顶点、MM 条边组成的简单图(即没有重边和自环)。顶点编号为 1,2,,N1,2,\ldots,N,彼此可以区分,边用 (ai,bi) (1iM)(a_i,b_i)\ (1\leq i\leq M) 表示。AtCoDeer 君打算用 KK 种颜色的油漆给每条边涂色。油漆数量充足,因此可以用同一种颜色涂多条边。

由于 AtCoDeer 君捡到的图有特殊的形状,他可以选择一个简单环(即每个顶点只经过一次的环),并将该环上的边的颜色沿着环依次轮换。具体来说,设环上的边依次为 e1,e2,,eae_1, e_2, \ldots, e_a,则可以将 e1e_1 的颜色涂到 e2e_2e2e_2 的颜色涂到 e3e_3,……,ea1e_{a-1} 的颜色涂到 eae_aeae_a 的颜色涂到 e1e_1,同时进行涂色替换。

11:操作示例

如果通过有限次上述操作,可以将涂色方案 A 变换为涂色方案 B,则认为这两种涂色方案是相同的。请你求出不同的涂色方案有多少种。由于答案可能非常大,请输出对 109+710^9+7 取模的结果。

输入格式

输入通过标准输入给出,格式如下:

NN MM KK a1a_1 b1b_1 a2a_2 b2b_2 \ldots aMa_M bMb_M

输出格式

输出不同的涂色方案数对 109+710^9+7 取模的结果。

样例 1

输入

4 4 2
1 2
2 3
3 1
3 4

输出

8

样例 2

输入

5 2 3
1 2
4 5

输出

9

样例 3

输入

11 12 48
3 1
8 2
4 9
5 4
1 6
2 9
8 3
10 8
4 10
8 6
11 7
1 8

输出

569519295

说明/提示

限制条件

  • 1N501\leq N\leq 50
  • 1M1001\leq M\leq 100
  • 1K1001\leq K\leq 100
  • 1ai,biN (1iM)1\leq a_i,b_i\leq N\ (1\leq i\leq M)
  • 图中没有自环和重边。

由 ChatGPT 4.1 翻译