#P7752. [COCI2013-2014#2] PALETA

[COCI2013-2014#2] PALETA

题目描述

Mirko 有 kk 种颜色和 nn 个图像需要上色。图像编号从 11nn,他决定用 kk 种颜色中的一种来填充每个图像。

为此,他选择了 nn 个数字 fif_i,并决定按照如下方法涂色:

  • fiif_i\ne i,则图像 ii 与图像 fif_i 的颜色不应该相同。
  • fi=if_i=i,他可以在满足所有其他条件的基础上,将图像 fif_i 涂成任何颜色。

你需要求出上色的可能方法的数量。

由于输出可能非常大,你只需要输出答案对 109+7\bm{10^9+7} 取模后的结果。

输入格式

第一行两个整数 n,kn,k,表示图像的数量与颜色的数量。

接下来 nn 行,即 fif_i

输出格式

仅一行一个整数,即给书着色的可能方法的数量对 109+710^9+7 取模后的结果。

2 3
2 1
6
3 4
2 3 1
24
3 4
2 1 1
36
3 4
1 1 2
36

提示

样例 1 说明

共有 33 种颜色,并且图像 2 的颜色不能与图像 1 相同。可能的上色方案为 (1,2),(1,3),(2,1),(2,3),(3,1),(3,2)(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2),其中括号中两个数字分别表示两个图像的颜色。

样例 4 说明

共有 44 种颜色。

  • 对于图像 1,可以涂成任何颜色。
  • 对于图像 2,颜色不能与图像 1 相同。
  • 对于图像 3,颜色不能与图像 2 相同。

即图像 2 可以用除了图象 1 外的 33 种颜色着色,图像 3 可以用除了图象 2 外的 33 种颜色着色。

答案为 4×3×3=364\times 3\times 3=36

数据规模与约定

  • 对于 50%50\% 的数据,有 fifj(1ijn)f_i\ne f_j(1\le i\ne j\le n)
  • 对于 100%100\% 的数据,有 1n,k1061\le n,k\le 10^6

对于所有合法的 fif_i,有 1fin1\le f_i\le n

来源

本题译自 COCI2013-2014 CONTEST 2 T5 PALETA

按照原题数据配置,本题满分 140140 分。