P7941 「Wdcfr-1」Magical Expression

题目描述

妮特莉正在学习后缀表达式。她有一个长度为 $n$ 的不完整后缀表达式 $E$。作为妖怪,她想要找到它的魔法属性。 她的后缀表达式包含按位或运算符(记作 `|`)、按位与运算符(记作 `&`),以及数字 `0` 和 `1`。由于不完整,一些运算符尚未决定,用 `?` 表示。她保证 $E$ **在你完成它之后将成为一个*有效*的后缀表达式**。 在这个问题中,术语*子串*定义为 $E$ 的一个连续片段。**只要位置或长度不同,两个子串就被认为是不同的。**所以 `1?0`,`01?0` 都是 `01?01?|` 的子串,但 `0101` 不是。 妮特莉发现她的表达式的一个子串是*魔法的*,当且仅当满足以下条件: - 在将 `?` 替换为 `&` 或 `|` 后,可以将其转换为一个*有效*的后缀表达式。 - 在这些转换中,至少能找到一种转换,使得应用后表达式的结果为 $0$,并且至少能找到一种转换,使得应用后表达式的结果为 $1$。 你的任务是找出*魔法的*子串的数量。

输入格式

第一行包含一个整数 $T$,表示测试用例的数量。 对于每个测试用例,在一行中输入一个整数 $n$ 和一个表达式 $E$。

输出格式

对于每个测试用例,输出一个整数,表示答案。

说明/提示

### 约束条件 $1\le T,n\le 2\times 10^6$。所有测试用例的 $n$ 之和 $\le 2\times 10^6$。 题面翻译由 ChatGPT-4o 提供。