#H1023. 毕业旅行
毕业旅行
题目描述
终于,小明毕业了,他规划进行一次毕业旅行。经过长时间的筛选,小明最终定下来 个城市作为旅行的目的地,并将这些城市人为编号为 。这些城市由 条双向道路连接而成。
小明非常喜欢其中编号为 的那些城市,在他的旅行中,必须经过 这 个城市至少一次。当 为 时,表示小明不是必须要经过规定的城市。
现在小明会进行为期 天的旅行,每一天小明都可以前往一个城市。小明的起点可以是 中任意一个城市,终点也可以是 中的任意一个城市,他每天都可以从一个城市走到另一个有道路直接相连的城市。我们可以将小明的旅行表示成一个长度为 的数列,其中数列的第 项为小明第 天所在的城市(第 项作为起点城市)。
- 注意:小明不能连续两天呆在一个城市,即每一天小明必须前往一个有边相连的其他城市。
- 例如,假设一定要去到 这两个城市,旅行 天,那么旅行数列 是一种合法的方案, 而 是不合法的,这种方案中小明第 天到第 天都在城市 。
现在小明想知道有多少种不同的旅行方案,即可以表示成多少个长度为 的不同数列,只要有某一天所在的城市不同,就认为这两种方案不同。
小明又将这个问题交给了精通编程的你,现在想知道方案数模 的答案。
输入格式
第一行四个非负整数 ,含义如题面所述。
接下来有 行,每行两个数 ,表示 和 之间有一条双向道路相连。
输出格式
输出一行一个整数,表示方案数模 后的值。
输入输出样例 #1
输入 #1
4 4 2 3
1 2
2 3
3 1
2 4
输出 #1
10
说明/提示
【样例解释】
小明必须要去城市 至少一次,进行 天的旅行。通过枚举,可以发现满足要求的不同的旅行序列有:$\{1,2,1\},\{1,2,3\},\{1,2,4\},\{1,3,2\},\{2,1,2\},\{2,1,3\},\{2,3,1\},\{3,1,2\},\{3,2,1\},\{4,2,1\}$,共 种不同的方式。
【数据范围】
对于所有数据,不保证图全连通,但保证没有重边和自环。
其中所有数据都满足 $1\le n \le 20, 1 \le m \le \min(150,n*(n-1)/2),0 \le k \le \min(n,7),1\le d \le 10^9$,具体分布如下表所示。
| 测试点 | ||||
|---|---|---|---|---|
相关
在下列比赛中: