QOJ.ac

QOJ

Time Limit: 1.0 s Memory Limit: 512 MB Total points: 100 Hackable ✓

#18102. 着色图

Statistics

给你一个按照以下方式构建的有向图:

  • 选择一个包含恰好 $n$ 个顶点和 $n$ 条边的连通无向图。顶点编号为 $1$ 到 $n$。
  • 将每条无向边转换为一条有向边,使得每个顶点的出度均为 $1$。

此外,给你 $m$ 种不同的颜色来对顶点进行染色。你的任务是计算可以制作出的不同染色图的数量。

如果且仅当两个染色图 $A$ 和 $B$ 的顶点集之间存在一个映射 $P$,满足以下约束条件时,这两个染色图被认为是相同的:

  • 图 $A$ 中的顶点 $u$ 与图 $B$ 中的顶点 $P(u)$ 具有相同的颜色。
  • 对于图 $A$ 中的任意两个不同顶点 $u$ 和 $v$,$P(u)$ 和 $P(v)$ 是图 $B$ 中的不同顶点。
  • 对于图 $A$ 中的任意有向边 $u \to v$,图 $B$ 中都存在对应的有向边 $P(u) \to P(v)$。

输出答案模 $10^9 + 7$ 的结果。

输入格式

输入的第一行包含两个空格分隔的整数 $n$ 和 $m$($3 \le n \le 10^5$,$1 \le m \le 10^9$),分别表示图中的顶点数和拥有的颜色数。

接下来 $n$ 行。第 $i$ 行包含一个整数 $f_i$($1 \le f_i \le n$,$f_i \ne i$),表示给定图中存在一条从顶点 $i$ 到顶点 $f_i$ 的有向边。

输出格式

输出单行,包含一个整数,表示答案。

样例

输入样例 1

6 3
2
3
4
1
1
3

输出样例 1

378

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.