2454 - 逻辑表达式(2025)
描述

给定一个逻辑表达式,以后缀形式给出,包含三种运算符:`&`、`|`、`^`:

-   `&` 表示逻辑与运算

-   `|` 表示逻辑或运算

-   `^` 表示逻辑异或运算

表达式还包含三种基本逻辑值:`0`、`1`、`?`。

每个 `?` 都可以,也必须赋值成为 `0` 或 `1` 中的一种,请问有多少种不同的赋值方式,可以让整个逻辑表达式的值为 `0`?

由于答案可能很大,请输出方案数模 1,000,000,007 的余数。

后缀表达式的定义如下:

-   `0`、`1`、`?` 都是后缀表达式;

-   如果 `x`,`y` 都是后缀表达式,则 `xy&`、`xy|`、`xy^` 都是后缀表达式;

-   不满足以上两条规则的表达式都不是后缀表达式。


输入

-   单个字符串表示输入的后缀表达式

输出

-   单个整数:表示答案模 1,000,000,007 的余数。

样例

输入

??&

输出

3

输入

??|??01??&||^|?|??|||

输出

4

输入

??0??&??1?|^|?|||^|

输出

64
提示

|s| 表示输入字符串的长度

-   50\%的数据,1\leq |s|< 1,000

-   100\%的数据,1\leq |s|< 200,000

额外的

????&????&&^&|&????&????&&^&|&&
60352


题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 15
通过次数 9