「KDOI-07」n1gr tS0i
感觉很典
首先变成区间异或,然后再来个前缀和,那么就变成了有n+1个位置,每次可以给任意两个位置(距离>=3)^1。这样的话我们先猜手结论,是\(2^{n}\)。考虑证明,因为异或了n次,不妨将它变成前n次异或可以确定前n项。如果要变成0,那么这个位置就异或两次,同时给后面留两个,那么这样每2个为1组,就可以做到。如果这个位置要变成1,那么就异或一次,同时给后面留,如果后面要变成0那么就再异或一次并往下异或,如果要变成1,那么就直接搞。发现这个往下的过程至少要4个才能成立,因为往下异或的话要新的一组。
这篇和我思路差不多,n%4不为0的情况也一样,只需先利用前面将后面改过来就好了,至于前面因为和原先字符串没关系,所以得证