安全间隔
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
安全间隔
题目描述
某实验室有一排从左到右编号为 的工位。为了保证设备之间留有安全距离,任意两个相邻工位不能同时被使用。
现在用一个长度为 的 01 串 表示工位状态:
- 表示第 个工位已经被使用;
- 表示第 个工位目前空闲。
已经使用的工位不能撤销。你可以选择若干个空闲工位投入使用,使最终状态中不存在相邻的两个 1,并且最终使用的工位数量尽可能多。
请计算达到最大使用数量的不同方案数。两个方案不同,当且仅当至少有一个工位在两个方案中的最终状态不同。
如果初始状态已经存在相邻的两个 1,则不存在合法方案。
输入格式
第一行一个整数 。
第二行一个长度为 的 01 串 。
输出格式
输出一个整数,表示最优方案数对 取模后的结果。
样例 1 输入
8
10000001
样例 1 输出
3
样例 1 说明
最多还能使用两个工位。新增工位编号分别为 、 或 ,因此共有 种方案。
样例 2 输入
5
01100
样例 2 输出
0
数据范围与测试点说明
对于全部数据,。
本题共 个测试点,每个测试点 分。
| 测试点 | 特殊性质 |
|---|---|
串中至多有 个 0 |
|
串中只包含 0 |
|
串中只包含 1 |
|
串中恰好有一个 1 |
|
串中恰好有两个 1 |
|
| 无额外限制 |