T284650 easy
题目背景
gyy懒得给这题也写个背景......不如直接看题吧。
性质题,我评个紫不过分把
题目描述
有一个字符串 $t$,初始为空。
现在,要对其进行 $n$ 次操作,每次操作首先给出一个字符 $c$:
- 若 $t$ 为空,则令 $t=cc$。
- 否则,交换 $t$ 的第 $2,3$ 个字符,第 $4,5$ 个字符......第 $|t|-2,|t|-1$ 个字符;之后,再将 $c$ 分别插
入 的第 $2$ 位和倒数第 $2$ 位。
gyy觉得这个操作十分有意思。经过观察,他发现,每次操作完后,$t$ 都是一个偶回文串!
不仅如此,他还发现,$t$ 的偶回文前缀也特别多。所以,他想让你统计一下每次操作之后偶回文前缀的个数。
但他转念一想,这似乎对你来说太简单了。于是,他改为要求你统计每次操作之后偶回文前缀的哈希值之和,并强制在线地回答询问。
同时,他给出了一个数字 $k$ 用来减小输出量。你只需要每 次操作后输出一个数表示这 $k$ 次操作的答案的异或和即可。
具体细节或者一些可能出现的疑问请参见输入输出格式及说明。
输入格式
第一行一个字符串 $s$。
第二行一个数 $k$ 用于减小输出量。
强制在线方式:记第 $i$ 次操作后答案为 $ans_i$,则第 $i$ 次操作给出的字符 $c=(ans_{i-1}+s_i-\text{ASCII}(a))\bmod 26+\text{ASCII}(a)$
。特别规定 $ans_0=0$。
输出格式
你要输出 $\lfloor \frac{|s|}{k}\rfloor$ 行,第 $i$ 行表示 $ans_{k(i-1)+1}\ \text{xor}\cdots \text{xor} \ ans_{ki}$。
**哈希方式**:选取 $B=131$ 为底数,$MOD=2^{64}$ 为模数,则一个字符串 $s$ 的哈希值为:$(\sum_{i=1}^{|s|}(\text{ASCII}(s_i)-\text{ASCII}(a))B^{|s|-i})\bmod MOD$
例如,"abc" 的哈希值为 $(0\times B^2+1\times B^1+2\times B^0)\bmod MOD=133$。
说明/提示
### 样例1解释
第1次操作,$c=a$,操作后 $t=aa$,有一个偶回文前缀 $aa$。
第2次操作,$c=b$,操作后 $t=abba$,有一个偶回文前缀 $abba$。
第3次操作,$c=a$,操作后 $t=aabbaa$,有两个偶回文前缀 $aa$ 和 $aabbaa$。
第4次操作,$c=b$,操作后 $t=abbaabba$,有两个偶回文前缀 $abba$ 和 $abbaabba$。
第5次操作,$c=a$,操作后 $t=aabbaabbaa$,有三个偶回文前缀 $aa,aabbaa,aabbaabbaa$。
第6次操作,$c=b$,操作后 $t=abbaabbaabba$,有三个偶回文前缀 $abba,abbaabba,abbaabbaabba$。
### 数据范围和提示
对于前 $30\%$ 的数据,$|s|\le1000$。
对于前 $50\%$ 的数据,$|s|\le{10}^5$。
对于所有的数据,$1\le k\le |s|\le 5\times {10}^6$。
以下是一些定义:
$|s|$ 表示字符串 $s$ 的长度。
$s_i$ 表示字符串 $s$ 的第 $i$ 个字符,从 $1$ 开始编号。
回文串是指满足 $\forall 1\le i\le |s|,s_i=s_{|s|+1-i}$ 的字符串 。
“偶回文串”是指长度为偶数,且是回文串的字符串。
“偶回文前缀”是指是偶回文串且是原串前缀的字符串