题意 给\(N,M(N,M \le 250000)\)的两个由8位二进制表示的两个序列,允许改变每个数字的第8位的数值(即0→1,1→0),求改变最少次数使得长为\(M\)的序列为长为\(N\)的连续子序列,在次数最少的前提下,找到下标最小的起始位置. 思路 因为只能改变第8位的状态,所以若能匹配的话,前7位数值需要相同,这步通过KMP完成即可. 剩下就是如何快速求每个匹配区间所需要的代价,即找出两个长为\(M\)的序列对应位不同的个数. 考虑位置\(A[i, i + M - 1]\),若按\(…