#3178. Logical Expression

0

Logical Expression

Logical Expression

题目描述

给定 NN 个字符串 S1,…,SNS_1,\ldots,S_N,每个字符串为 ANDAND 或 OROR。 求有多少个长度为 N+1N+1 的元组 (x0,…,xN)(x_0,\ldots,x_N),其中每个元素为 True\text{True} 或 False\text{False},使得以下计算得到 yNy_N 为 True\text{True}:

y0=x0y_0=x_0; 对于 i≥1i\geq 1,若 SiS_i 为 ANDAND,则 yi=yi−1∧xiy_i=y_{i-1} \land x_i,若 SiS_i 为 OROR,则 yi=yi−1∨xiy_i=y_{i-1} \lor x_i。

这里,a∧ba \land b 和 a∨ba \lor b 是逻辑运算符。

输入格式

输入从标准输入给出,格式如下: NN S1S_1 ⋮\vdots SNS_N

输出格式

输出答案。

2
AND
OR
5
5
OR
OR
OR
OR
OR
63

提示

1≤N≤601 \leq N \leq 60 SiS_i 为 ANDAND 或 OROR。例如,如果 $(x_0,x_1,x_2)=(\text{True},\text{False},\text{True})$,我们有 y2=Truey_2 = \text{True},如下所示:

y0=x0=Truey_0=x_0=\text{True} $y_1=y_0 \land x_1 = \text{True} \land \text{False}=\text{False}$ $y_2=y_1 \lor x_2 = \text{False} \lor \text{True}=\text{True}$

下面列出了所有 令 y2=Truey_2 = \text{True} 的五个元组 (x0,x1,x2)(x_0,x_1,x_2):

(True,True,True)(\text{True},\text{True},\text{True}) (True,True,False)(\text{True},\text{True},\text{False}) (True,False,True)(\text{True},\text{False},\text{True}) (False,True,True)(\text{False},\text{True},\text{True}) (False,False,True)(\text{False},\text{False},\text{True})
除全部为 False\text{False} 的那个元组外,所有元组都使得 y5=Truey_5 = \text{True}。

标签: AtCoder|abc189D

来源

AtCoder|abc189D