logo Algo Beat Contest
登录 注册

#1007. [Algo Beat Contest 001 G] Great DS Homework

内存限制:512 MiB 时间限制:5000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: AlgoBeat 官方账号

题目描述

Problem Score Idea Std Data Check Solution
orchardist joe_zxq remmymilkyway & joe_zxq Link by orchardist

小 G 觉得上一道数学题太愚蠢了,所以出了一道数据结构题作为作业。

小 G 有一个长度为 的逻辑表达式,形如 ,其中 &|^

& 表示与运算,| 表示或运算,^ 表示异或运算。运算符之间不分优先级

定义一个表达式的子表达式为它的一个连续区间,满足区间左端点,右端点均为数字。特别地,单独一个数字也算在内。

现在小 G 想知道,这个表达式的所有子表达式计算结果的和是多少?

小 G 觉得这个问题太简单了,所以决定进行 次修改。每次修改给定 pos nop nx,表示将 改为 改为 。特别地,当 时, 可忽略。你需要在每次修改后,都输出这个表达式的所有子表达式计算结果的和。

输入格式

第一行包含两个正整数 ,表示变量的个数和询问的次数。

第二行包含长度为 的字符串 ,表示小 G 的逻辑表达式。

接下来 行,每行形式为 pos nop nx

输出格式

包含 行,每行一个数字,表示答案。

样例

输入 #1

4 4
1&1^0|0
4 ^ 1
4 | 0
1 | 0
2 & 0

输出 #1

7
7
3
0

输入 #2

10 10
1|1|1^1|0^0&0|0|1&1
6 ^ 1
9 & 1
7 ^ 1
1 ^ 1
1 | 0
7 | 1
6 & 1
2 ^ 1
8 | 1
2 & 1

输出 #2

32
16
24
24
23
43
40
40
43
42

数据范围与提示

样例解释 #1

第一次操作后,逻辑表达式为 1&1^0^1,子表达式有 11011&11^00^11&1^01^0^11&1^0^1,计算结果之和为

数据范围

对于 的数据,保证