#Lutece3134. 放晴
放晴
Migrated from Lutece 3134 放晴
All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.
Description
许多年后,年迈的肥伦去世了,芙莉莲又一次葬送了她最亲密的朋友。
她们曾经一起走过许多地方,留下了许多回忆。
现在,芙莉莲决定重新走一遍曾经的旅途,重新拾起美好的瞬间。
她们曾经一共走过个村庄,这个村庄由条双向道路连接而成。
在这个村庄中,芙莉莲决定这次重返旅途一定要经过某个特定的村庄,其他的村庄随意。
由于时间有限,这次旅途的总时间为天,每天她要从一个村庄走到与该村庄相连的其他村庄,不能停留,即第二天要走到与当前所在村庄不同的其他村庄。
走到起始的村庄会看作为第一天,具体的,我们可以用一个长度为的序列来表示一次旅途的过程,表示第天芙莉莲所在的村庄,也就是起始村庄了,起始村庄可以任意选,每个村庄都可以在序列里面出现多次。
和这俩个序列看作不一样当且仅当存在一个使得。
一个满足所有要求的旅途序列被看作一个合法的旅途方案。芙莉莲不知道一共有多少种合法的旅途方案,请你帮帮她吧。芙莉莲很聪明,你只需要告诉她合法的方案数模后得到的答案。
注意模数
Input
第一行四个整数$(1\leq n \leq20,1\leq m \leq150,0\leq k \leq min(7,n),1\leq s\leq 10^9)$ 第二行个整数表示个必须经过的村庄编号. 接下来行,每行俩个整数表示村庄和村庄之间有一条边,不存在重边和自环。
Output
一行一个整数,表示合法的方案数模上后的答案.
Samples
4 4 2 3
1 2
1 2
2 3
3 1
2 4
10
Resources
2024 UESTC ICPC Training for Search and Dynamic Programming