luogu#P12246. 电 van

    ID: 36260 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>洛谷原创O2优化前缀和洛谷月赛

电 van

题目背景

English statement: https://www.luogu.com.cn/problem/T595299

题目描述

小 O 非常爱去电 van\texttt{van} 城,所以他对 van\texttt{van} 这个字符串非常的感兴趣,于是他出了一道和 van\texttt{van} 有关的字符串题。

给你一个长度为 nn 的字符串 ss,保证 ssv\texttt{v}a\texttt{a}n\texttt{n} 三种字符构成,设 sis_i 表示 ss 的第 ii 个字符。

接下来小 O 会给你 mm 次操作,每次操作给出一个整数 x(1xn1)x(1\le x\le n-1),表示你需要交换 sxs_xsx+1s_{x+1}

在每次操作结束后,你需要输出字符串中 van\texttt{van} 作为子序列的出现次数。

  • 一个字符串 tt 是字符串 ss 的子序列,当且仅当可以从 ss 中删除若干个字符(可以为 00 个),将剩下的字符按在 ss 中的顺序依次相接得到 tt

输入格式

输入共 m+2m+2 行。

第一行有两个整数 n,mn,m,分别表示字符串长度和操作次数。

第二行有一个长度为 nn 的字符串 ss

3m+23\sim m+2 行,第 i+2i+2 行一个整数 xix_i,表示第 ii 次操作给出的 xx

输出格式

输出共 mm 行,第 ii 行输出一个整数表示第 ii 次操作结束后的答案。

8 3
vvvaannn
4
3
5
18
15
12

提示

样例 #1 解释

初始时 s=vvvaannns=\texttt{vvvaannn}

第一次操作交换 s4s_4s5s_5,此时 s=vvvaannns=\texttt{vvvaannn}van\texttt{van} 作为子序列出现了 1818 次。

第二次操作交换 s3s_3s4s_4,此时 s=vvavannns=\texttt{vvavannn}van\texttt{van} 作为子序列出现了 1515 次。

第三次操作交换 s5s_5s6s_6,此时 s=vvavnanns=\texttt{vvavnann}van\texttt{van} 作为子序列出现了 1212 次。

数据范围

对于 100%100\% 的数据,3n1063\le n\le 10^61m1061\le m\le 10^6si{v,a,n}s_i\in\{\texttt{v,a,n}\}

具体测试点限制如下表:

测试点编号 nn 的范围 mm 的范围 特殊性质
1,21,2 n3n\le 3 m100m\le 100
353\sim 5 n100n\le 100
696\sim 9 n3000n\le 3000 m3000m\le 3000
101210\sim 12 n106n\le 10^6 m=1m=1
131613\sim16 n105n\le 10^5 m105m\le 10^5 A
17,1817,18
19,2019,20 n106n\le 10^6 m106m\le 10^6

特殊性质 A:对于交换操作,保证 sxs_xsx+1s_{x+1} 中至少有一个为 a\texttt{a}