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

    ID: 10987 Type: RemoteJudge 5000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>动态规划 DP线段树O2优化

[Algo Beat Contest 001 G] Great DS Homework

题目背景

Problem Score Idea Std Data Check Solution
G - Great DS Homework\text{G - Great DS Homework} 600600 orchardist joe_zxq remmymilkyway & joe_zxq Link by orchardist

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

题目描述

小 G 有一个长度为 2N12N-1 的逻辑表达式,形如 $a_1 \space op_2\space a_2\space op_3\space a_3 \dots op_N\space a_N$,其中 ai{0,1}a_i \in \{ 0,1\}opiop_i&|^

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

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

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

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

输入格式

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

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

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

输出格式

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

4 4
1&1^0|0
4 ^ 1
4 | 0
1 | 0
2 & 0
7
7
3
0
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
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,计算结果之和为 1+1+0+1+1+1+1+1+0+0=71+1+0+1+1+1+1+1+0+0=7

数据范围

对于 100%100\% 的数据,保证 1N,Q1061 \le N,Q \le 10^6