#P8. 表达式 (expr)
表达式 (expr)
题目描述
按如下方式定义一个,输入一个正整数 ,输出一个布尔值(True 或 False)的表达式:
- 令 是一个 内的整数,定义表达式
[a]:若 ,则返回True,若 ,则返回False。 - 令
E为一个表达式,则(E)也是一个表达式,它的返回值和E相同。 - 令
E为一个表达式,则!E也是一个表达式,它的返回值和E相反,即,若E = True,则!E = False;若E = False,则!E = True。 - 令
E,F为两个表达式,则E&F也是一个表达式,它的含义是逻辑与运算,即,若E,F = True,则E&F = True,否则E&F = False。 - 令
E,F为两个表达式,则E^F也是一个表达式,它的含义是异或运算,即,若E ≠ F,则E^F = True,否则E^F = False。 - 令
E,F为两个表达式,则E|F也是一个表达式,它的含义是逻辑或运算,即,若E,F = False,则E|F = False,否则E|F = True。
其中编号越小的操作优先级越高,多个同编号的操作,越靠左的优先级越高。例如 [1]&[2]|[3],则应该先算 & 再算 |;例如 [1]^[2]^[3],则应该先算 [1]^[2],令 G=[1]^[2],然后再计算 G^[3] 得到答案。
有 次询问,每次询问给定一个输入的数 ,你要回答输出是 True 还是 False。
输入格式
第一行两个整数 。
第二行一个长为 的字符串 ,表示给出的表达式。
接下来 行,每行一个整数 ,表示一个输入。
输出格式
输出 行,每行是 True 或者 False,依次回答每个输入。
样例
样例输入
15 5
(![2]|[3])&![4]
1
2
3
4
5
样例输出
True
False
True
False
False
时:![2]=False, [3]=True, ![2]|[3]=True, ![4]=True, (![2]|[3])&![4]=True 。
数据范围与约定
对于所有数据,有:
- 是一个正确的表达式
| 子任务 | 附加限制 | 分值 |
|---|---|---|
中没有 & 和 ` |
` | |
中没有 ! 和 ^ |
||
| 无特殊性质 |
京公网安备 11011102002149号