#P17158. 今晚吃黑子
今晚吃黑子
1010. 今晚吃黑子
题目描述
白井黑子喜欢下棋。
她在桌上将 枚棋子(黑子或白子)排成一列,从左到右依次编号为 到 。
定义一次操作为:选择一个棋子 ,满足 且 和 处的棋子颜色不同。她会将 和 处的棋子吃掉,然后移动棋子将空位填上,形成新的一列棋子,并重新从 开始编号。 也被重新设定为现在棋子序列的长度。
白井黑子可以进行任意(可以为零)次这样的操作。现在,她想让你求出最后可能得到的棋子序列的个数。两个棋子序列不同,当且仅当它们长度不同,或者某个位置棋子的颜色不同。
由于答案可能很大,请输出其对 取模后的结果。
输入格式
本题包含多组测试数据。
首先在第一行输入一个整数 ()表示测试数据组数。
接下来对于每一组测试数据:
输入的唯一一行包含一个 01 字符串 (),代表初始的棋子颜色,其中黑子是 0。
保证所有测试数据输入的字符串 的长度之和不超过 。
输出格式
对于每一组测试数据,输出一行一个数,表示可以得到的不同棋子序列的数量对 取模的值。
样例输入
2
1101
0100110
样例输出
2
7
提示
对于第一组测试数据,白井黑子可以选择棋子 ,并吃掉棋子 与 ,得到棋子序列 11,加上原序列本身,答案为 。
对于第二组测试数据,白井黑子首先选择棋子 ,序列变为 00110;再选择此时的棋子 ,序列变为 010。因此这两个序列都应该被统计到答案。
来源:2026杭电多校-测试专用(南外) 原题链接:http://acm.hdu.edu.cn/contest/problem_show.php?cid=1235&pid=1010