A5756 | 「TJOI2018」游园会
时间限制6s
内存限制256MB
通过 / 提交0/0
题目描述
小豆参加了 NOI 的游园会,会场上每完成一个项目就会获得一个奖章,奖章只会是 N, O, I 的字样。
在会场上他收集到了 $K$ 个奖章组成的串。兑奖规则是奖章串和兑奖串的最长公共子序列长度为小豆最后奖励的等级。
现在已知兑奖串长度为 $N$ ,并且在兑奖串上不会出现连续三个奖章为
现在小豆想知道各个奖励等级会对应多少个不同的合法兑奖串。
在会场上他收集到了 $K$ 个奖章组成的串。兑奖规则是奖章串和兑奖串的最长公共子序列长度为小豆最后奖励的等级。
现在已知兑奖串长度为 $N$ ,并且在兑奖串上不会出现连续三个奖章为
NOI ,即奖章中不会出现子串 NOI 。 现在小豆想知道各个奖励等级会对应多少个不同的合法兑奖串。
输入格式
第一行两个数 $N$,$K$ 分别代表兑奖串的长度,小豆收集的奖章串的长度。
第二行一共 $K$ 个字符,表示小豆得到奖章串。
第二行一共 $K$ 个字符,表示小豆得到奖章串。
输出格式
一共 $K+1$ 行,第 $i$ 行表示小豆最后奖励等级为 $i-1$ 的不同的合法兑奖串的个数,可能这个数会很大,结果对 $10^9 + 7$ 取模。
输入输出样例
输入 #1
3 2 NO
输出 #1
1 19 6
对于 $10\%$ 的数据,有 $N \leq 10 , K \leq 10$ 。
对于 $30\%$ 的数据,有 $N \leq 100 , K \leq 4$ 。
对于 $100\%$ 的数据,有 $N \leq 1000 , K \leq 15$ 。
对于 $30\%$ 的数据,有 $N \leq 100 , K \leq 4$ 。
对于 $100\%$ 的数据,有 $N \leq 1000 , K \leq 15$ 。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?