P7752 [COCI 2013/2014 #2] PALETA
题目描述
Mirko 有 $k$ 种颜色和 $n$ 个图像需要上色。图像编号从 $1$ 到 $n$,他决定用 $k$ 种颜色中的一种来填充每个图像。
为此,他选择了 $n$ 个数字 $f_i$,并决定按照如下方法涂色:
- 若 $f_i\ne i$,则图像 $i$ 与图像 $f_i$ 的颜色不应该相同。
- 若 $f_i=i$,他可以在满足所有其他条件的基础上,将图像 $f_i$ 涂成任何颜色。
你需要求出上色的可能方法的数量。
**由于输出可能非常大,你只需要输出答案对 $\bm{10^9+7}$ 取模后的结果。**
输入格式
第一行两个整数 $n,k$,表示图像的数量与颜色的数量。
接下来 $n$ 行,即 $f_i$。
输出格式
仅一行一个整数,即给书着色的可能方法的数量对 $10^9+7$ 取模后的结果。
说明/提示
#### 样例 1 说明
共有 $3$ 种颜色,并且图像 2 的颜色不能与图像 1 相同。可能的上色方案为 $(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)$,其中括号中两个数字分别表示两个图像的颜色。
#### 样例 4 说明
共有 $4$ 种颜色。
- 对于图像 1,可以涂成任何颜色。
- 对于图像 2,颜色不能与图像 1 相同。
- 对于图像 3,颜色不能与图像 2 相同。
即图像 2 可以用除了图象 1 外的 $3$ 种颜色着色,图像 3 可以用除了图象 2 外的 $3$ 种颜色着色。
答案为 $4\times 3\times 3=36$。
#### 数据规模与约定
- 对于 $50\%$ 的数据,有 $f_i\ne f_j(1\le i\ne j\le n)$。
- 对于 $100\%$ 的数据,有 $1\le n,k\le 10^6$。
对于所有合法的 $f_i$,有 $1\le f_i\le n$。
#### 来源
**本题译自 [COCI2013-2014](https://hsin.hr/coci/archive/2013_2014/) [CONTEST 2](https://hsin.hr/coci/archive/2013_2014/contest2_tasks.pdf) _T5 PALETA_。**
按照原题数据配置,本题满分 $140$ 分。