1092 : Absolute Difference Equation
时间限制Time Limit
5
秒Sec
内存限制Memory Limit
128
兆MB
提交次数Submitted
226 次Times
通过次数Solved
41 次Times
标准评测 Standard
从标准输入读入,结果写到标准输出。评测将输出拆成 token,与标准答案逐项比较,不按整段逐字节比对。
Read from standard input and write to standard output. The judge splits the output into tokens and compares them with the official answer; it does not compare raw bytes.
| 比对Compare | token 相同即通过。中间的空格、制表符、换行可多可少。Matching tokens pass. Extra spaces, tabs, or newlines between them are ignored. |
|---|---|
| 不同则错Differs | token 个数或内容不同即错误。23 与 2 3、02 与 2、2.0 与 2 均视为不同。A different token count or value is wrong. 23 vs 2 3, 02 vs 2, and 2.0 vs 2 all differ. |
| 输入Input | 标准输入,格式见题面。Standard input; format as in the statement. |
| 输出Output | 标准输出。Standard output. |
题目描述Description
For a sequence a1, a2, …, an, consider the following operation f: f(a) = {b1, b2, …, bn − 1}, where bi = |ai − ai + 1|.
After applying the operation f for n − 1 times, denoted by fn − 1(a), the sequence will become a single element.
Bobo has a sequence a of length n filled with 0, 1 and ?. He would like to know the number of ways modulo (109 + 7) to replace ? to 0 or 1 such that fn − 1(a) = {1}.
输入格式Input
The input consists of several test cases terminated by end-of-file. For each test case:
The first line contains a nonempty string a consisting only of 0, 1 and ?, denoting the given sequence.
- 1 ≤ |a| ≤ 106
- The sum of |a| does not exceed 107.
输出格式Output
For each test case, print an integer which denotes the result.
样例Sample
出题Author
ftiasch