题库练习 「TJOI2018」游园会
← 上一题 下一题 →

A5756 | 「TJOI2018」游园会

时间限制6s
内存限制256MB
通过 / 提交0/0

题目描述

小豆参加了 NOI 的游园会,会场上每完成一个项目就会获得一个奖章,奖章只会是 N, O, I 的字样。
在会场上他收集到了 $K$ 个奖章组成的串。兑奖规则是奖章串和兑奖串的最长公共子序列长度为小豆最后奖励的等级。
现在已知兑奖串长度为 $N$ ,并且在兑奖串上不会出现连续三个奖章为 NOI ,即奖章中不会出现子串 NOI
现在小豆想知道各个奖励等级会对应多少个不同的合法兑奖串。

输入格式

第一行两个数 $N$,$K$ 分别代表兑奖串的长度,小豆收集的奖章串的长度。
第二行一共 $K$ 个字符,表示小豆得到奖章串。

输出格式

一共 $K+1$ 行,第 $i$ 行表示小豆最后奖励等级为 $i-1$ 的不同的合法兑奖串的个数,可能这个数会很大,结果对 $10^9 + 7$ 取模。

输入输出样例

输入 #1
3 2
NO
输出 #1
1
19
6
C++ 编辑器
输入
输出