P11285 [COTS 2017] 周期 Ciklusi
题目背景
译自 [Izborne Pripreme 2017 (Croatian IOI/CEOI Team Selection)](https://hsin.hr/pripreme2017/) D1T1。$\texttt{2s,0.5G}$。
题目描述
给定简单无向图 $G=(V,E)$,其中 $V\subset \{1,2,\ldots,n\}$。
给定正整数 $k$。$G$ 中只有编号之差不大于 $k$ 的点间有连边。换言之,$(u,v)\in E\iff 1\le |u-v|\le k$。
定义 $G$ 的一条**回路**为一个长度为 $m=|V|$ 的序列 $a_0,a_1,\cdots,a_{m-1}$,满足:
- $\forall 0\le i\lt m$,都有 $(a_i,a_{(i+1)\bmod m})\in E$;
- $a_0,a_1,\cdots,a_{m-1}$ 恰好取遍 $V$ 中的每一个元素。
定义两条回路 $a,a'$ **本质相同**,当且仅当它们循环同构。形式化地说,两条回路 $a,a'$ 本质相同,当且仅当存在非负整数 $k$,使得 $a_0=a'_{k\bmod m},a_1=a'_{(1+k)\bmod m},\cdots,a_{m-1}=a'_{(m-1+k)\bmod m}$。
求出 $G$ 中本质不同的回路条数,答案对 $(10^9+7)$ 取模。
输入格式
第一行,两个正整数 $n,k$。
第二行,一个长度为 $n$ 的 $\texttt{01}$ 串 $s$。当且仅当 $s_i=1$ 时,$i\in V$。
保证 $|V|+3\le |n|$。
输出格式
输出一行一个整数,表示答案对 $(10^9+7)$ 取模后的结果。
说明/提示
对于 $100\%$ 的数据,保证:
- $1\le n\le 100$;
- $3\le k\le 5$;
- $|V|+3\le n$。
| 子任务编号 | $n\le $ | $k\le $ |得分 |
| :--: | :--: | :--: | :--: |
| $ 1 $ | $ 20 $ | $5$ | $ 10 $ |
| $ 2 $ | $ 100 $ | $3$ | $ 40 $ |
| $ 3 $ | $ 100 $ | $5$ | $ 50 $ |