P5821 【L&K R-03】密码串匹配

题目背景

众所周知,小 L 很喜欢用 $123321$ 做密码。每次登陆 Codeforces,都会看见显眼的一行提示: ```text Your password is extremely weak or has been leaked . Please, change it ASAP. (see https://haveibeenpwned.com/) ```

题目描述

在被机惨之后,小 L 痛定思痛,决定使用更安全的密码。小 L 设计出了一个可能长达 $200,000$ 位的仅由小写字母构成的密码,并保证没有人能记住,猜出或试出(包括小 L 自己)。 为了防止自己忘记整串密码(不用防止了,已经忘记了),小 L 编写了一个程序,可以存储小 L 的密码串 $T$,但是不能直接输出(因为这个程序可能会被他人使用),小 L 第一次会根据记忆还原出长度为 $l$ 的一个字符串 $P$,后面会根据程序的输出修改 $P$ 的某一位,这个程序可以求出当前猜测串 $P$ 与密码串 $T$ 的相同长度的字串的 **失配度** 。 定义字符 `a` 的值为 $1$,字符 `b` 的值为 $2$,以此类推,字符 `z` 的值为 $26$。定义两个字符串 $s,t$ 的失配度为对应位置上的值相减后的平方。 现在,小 L 想知道他的程序是否正确,请你也编写一个类似的程序。

输入格式

输入的第一行为三个数 $n,l,m$,分别表示密码串 $T$ 的长度 $n$,猜测串 $P$ 的长度 $l$,和操作次数 $m$。 接下来的两行有两个字符串,分别为 $T$ 和 $P$。 接下来的 $m$ 行,每行的第一个整数为 $op$,表示操作的类型: 若 $op=1$,接下来有一个整数 $x$,表示要求 $P$ 和从 $T$ 的第 $x$ 位开始长度为 $l$ 的字串的失配度; 若 $op=2$,接下来有一个整数 $x$ 和一个字符 $c$,表示修改 $P$ 的第 $x$ 位,使其等于 $c$。

输出格式

对于每个 $1$ 操作,输出一行,为所求值。

说明/提示

**请注意本题特殊的时间限制。** **本题数据规模大,请注意常数优化。** 为了防止题目过于卡常,本题 **提供 [八聚氧](https://www.luogu.com.cn/paste/ky1fh8zk)** ,直接加在代码最前提交即可。 本题中所有编号从 $1$ 开始。 - Subtask \#1:$30$ 分,保证 $n,m\le 5\times 10^3$; - Subtask \#2:$30$ 分,保证没有 $2$ 操作; - Subtask \#3:$40$ 分,保证 $n,m\le 2\times 10^5$。 对于 $100\%$ 的数据,保证 $1\le l\le n,1\le x$。 对于所有 $1$ 操作,保证 $x-1+l\le n$。 对于所有 $2$ 操作,保证 $x\le l$。 ### 样例解释 $(a-a)^2+(n-n)^2+(g-g)^2+(r-e)^2+(y-r)^2=13^2+7^2=218$。 $(a-a)^2+(m-m)^2+(a-g)^2+(n-e)^2+(g-r)^2=6^2+9^2+11^2=238$。