4741: 毕业季
内存限制:256 MB
时间限制:1 S
标准输入输出
题目类型:传统
评测方式:Special Judge
上传者:
提交:5
通过:0
题目描述
在繁忙的毕业季,又有一群人即将告别校园的朋友们,他们经历了四年的时光,共同度过了青春岁月。小Y作为当年的毕业生之一,小Y想要为自己的大学生活画上一个完美的句号,于是他决定组织一次持续d天难忘的宿舍毕业旅行。
室友们选定了 n 个城市作为候选的旅游城市,标记为1 ∼ n,这些城市由m 条双向道路连接而成,在这n个城市中,有k个城市是大家一致同意一定要去的,在宿舍旅途中,必须经过这k 个城市每个至少一次。
旅游的起点可以是1 ∼ n中任意一个城市,终点也是可以是任意一个城市,每天可以从当前城市走到有边直接相连的另一城市(但不能停留在当前城市),旅程可以用一个长度为 d 是数列来表示,第 i项 为第i天所在城市(第一项为起点城市)
小Y想知道有多少种旅行方案(也就是有多少个不同的数列,只要有某一天所在的城市不同,就认为这两种方案不同),由于小Y忙于写毕业论文,所以这个任务就交给你了,小Y 只想知道方案数模(109+9) 后的答案。
输入格式
第一行四个非负整数n,m,k,d(1≤n≤20,1≤m≤150,0≤k≤min(n,7), 1≤d≤109)含义如题。
接下来k个整数,表示k个旅行中一定需要经过的城市编号。
接下来 m 行,每行两个数 ,ui,vi,表示ui和vi之间有一条双向道路,保证没有重边和自环
输出格式
输出一行, 旅行方案数取模(109+9)后的值
输入样例 复制
4 4 2 3
1 2
1 2
2 3
3 1
2 4
输出样例 复制
10