题目背景
译自 Izborne Pripreme 2017 (Croatian IOI/CEOI Team Selection) D1T1。2s,0.5G。
题目描述
给定简单无向图 G=(V,E),其中 ∣V∣=n。
给定点集 S⊂V,称 S 中的点被删除。
给定正整数 k,则 (u,v)∈E⟺u,v∈V\S∧0<∣u−v∣≤k。
定义 G 的一条回路为一个长度为 m=∣V∣−∣S∣ 的序列 a0,a1,⋯,am−1,其中 ∀0≤i<m,都有 (ai,a(i+1)modm)∈E,且 a0,a1,⋯,am−1 恰好取遍 V\S 中的每一个元素。
定义两条回路 a,a′ 本质相同,当且仅当存在非负整数 k,使得 a0=akmodm′,a1=a(1+k)modm′,⋯,am−1=a(m−1+k)modm′。换句话说,a 和 a′ 本质相同当且仅当 a,a′ 循环同构。
求出 G 中本质不同的回路条数,对 (109+7) 取模。
输入格式
第一行,两个正整数 n,k。
第二行,一个长度为 n 的 01 串 s。当且仅当 si=1 时,i∈S。
保证 ∣S∣+3≤∣V∣。
输出格式
输出一行一个整数,表示答案对 (109+7) 取模后的结果。
提示
对于 100% 的数据,保证:
- 1≤n≤100;
- 3≤k≤5;
- ∣S∣+3≤∣V∣。
子任务编号 |
n≤ |
k≤ |
得分 |
1 |
20 |
5 |
10 |
2 |
100 |
3 |
40 |
3 |
5 |
50 |