#loj5714. 「BalticOI 2026」游客的旅程

「BalticOI 2026」游客的旅程

#5714. 「BalticOI 2026」游客的旅程

标签: 传统 | 时间限制: 1000 ms | 内存限制: 512 MiB |

题目描述

题目译自 BalticOI 2026 Day1「Tourist's Journey

一个国家有 nn 个城市,编号为 1,2,,n1, 2, \ldots, n,它们由 mm 条双向道路连接。道路数量比城市数量最多多出 1010 条,且保证任意两个城市之间都可以通过一条或多条道路到达。

一位游客正在规划一次国内旅行,他们决定:

  • 行程从城市 11 出发,在城市 nn 结束。
  • 行程包含恰好 kk 步,每一步经过一条道路。
  • 在连续的两步中,不允许沿着同一条道路往返。然而,如果中间有其他步骤,则可以多次经过同一条道路。

从城市 11 到城市 nn 且包含 kk 步的行程方案共有多少种?如果两个方案在任意一步经过的城市不同,则视为不同的方案。

输入格式

第一行包含三个整数 n,mn, mkk,分别表示国家的城市数量、道路数量以及行程的步数。

接下来的 mm 行描述了道路。每行包含两个不同的整数 uuvv,表示城市 uu 和城市 vv 之间有一条道路。任意两个城市之间最多只有一条道路。

输出格式

输出不同行程方案的数量。由于答案可能很大,请对 109+710^{9}+7 取模。

样例 1

输入

4 5 5
1 2
1 3
2 3
2 4
3 4

输出

4

下图展示了该国的城市和道路。

可能的行程方案为:

  • $1 \rightarrow 2 \rightarrow 3 \rightarrow 1 \rightarrow 2 \rightarrow 4$
  • $1 \rightarrow 3 \rightarrow 2 \rightarrow 1 \rightarrow 3 \rightarrow 4$
  • $1 \rightarrow 2 \rightarrow 4 \rightarrow 3 \rightarrow 2 \rightarrow 4$
  • $1 \rightarrow 3 \rightarrow 4 \rightarrow 2 \rightarrow 3 \rightarrow 4$

样例 2

输入

4 3 4
1 2
2 3
2 4

输出

0

没有任何合法的 44 步行程方案。注意,方案 $1 \rightarrow 2 \rightarrow 3 \rightarrow 2 \rightarrow 4$ 是非法的,因为它在连续的两步中使用了连接城市 22 和城市 33 的同一条道路。

数据范围与提示

对于所有输入数据,满足:

  • 2n21052 \leq n \leq 2 \cdot 10^{5}
  • n1mn+10n-1 \leq m \leq n+10
  • 1k1041 \leq k \leq 10^{4}

详细子任务附加限制及分值如下表所示。

子任务 附加限制 分值
11 n,k10n, k \leq 10 77
22 n,k100n, k \leq 100 88
33 m=n1m=n-1 1111
44 m=n1m=n-1m=nm=n 2929
55 n1000n \leq 1000 1515
66 无附加限制 3030