QOJ.ac

QOJ

Time Limit: 8 s Memory Limit: 512 MB Total points: 100

#856. 仙人掌图

Statistics

首先,让我们开诚布公地说:情况不太妙。原本应该是一个与朋友共度的轻松夜晚,却变得糟糕透顶:你被一个廉价古龙水的移动广告牌袭击了,而你视若珍宝的无价阿根廷仙人掌——你唯一珍视的东西——被扔出了窗外。

事发之后——或者说,在身体条件允许的情况下——你立刻跑下楼梯去评估损失。就在那里,你的无价仙人掌,还活着!虽然身上有些擦伤,但依然活着。这是怎么发生的?它落在了柔软的东西上吗?欣喜若狂的你决定不去深究原因。我说过情况不太妙吗?划掉那句话,一切都很棒——现在是庆祝的时候了!当然,这场庆祝的核心将是你这位绿色的带刺朋友。

那些不太熟悉植物学的人现在可以复习一下:仙人掌图(cactus)是一个连通图,其中每个顶点至多属于一个环。为了增加节日气氛,你决定用 $k$ 种颜色中的一种来为仙人掌的每个顶点着色。你希望在这里给自己留出很大的自由度,但你确实想遵守仙人掌着色的黄金法则:没有两个相邻的顶点被分配相同的颜色。

一种着色方案似乎还不够,所以你决定在颜色褪去后,一次又一次地重新为仙人掌着色,每次都使用不同的着色方案。但你能坚持多久呢?给定仙人掌的描述和颜色数量 $k$,计算仙人掌顶点的正确 $k$-着色方案数。由于答案可能非常大,你只需要计算其对 $10^9 + 7$ 取模后的余数。

输入格式

第一行包含测试用例的数量 $z$ ($1 \le z \le 50\,000$)。接下来是各测试用例的描述。

每个测试用例的第一行包含三个整数 $n$、$m$ 和 $k$ ($1 \le n \le 300\,000, 0 \le m \le 400\,000, 2 \le k \le 10^9$),分别表示仙人掌的顶点数、边数和颜色数。

接下来的 $m$ 行,每行包含两个整数 $u_i, v_i$ ($1 \le u_i \neq v_i \le n$),对应仙人掌的边。保证给定的图是一个仙人掌,且任意两个顶点之间至多有一条边。

所有测试用例中顶点数和边数的总和分别不超过 $3 \cdot 10^6$ 和 $4 \cdot 10^6$。

输出格式

对于每个测试用例,输出一个整数:用 $k$ 种颜色对仙人掌顶点进行正确着色的方案数,结果对 $10^9 + 7$ 取模。

样例

输入 1

2
2 1 100
1 2
6 7 3
1 2
2 3
3 1
4 5
5 6
6 4
1 4

输出 1

9900
24

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.