「KDOI-03」序列变换
题目描述
给定一个长度为 $n$ 的 $\tt01$ 序列 $a$ 和 $q$ 次询问,询问参数 $k$。
每次询问给定 $L,R$,其中 $1\leq L\leq R\leq n$,你可以进行如下操作:
+ 选择一个下标 $L<i\le R$;
+ 将 $a_{i-1}$ 赋值为 $a_{i-1}\oplus a_i$,$a_{i+1}$ 赋值为 $a_{i+1}\oplus a_i$。如果 $i=n$,则不对 $a_{i+1}$ 作出改变。其中 $\oplus$ 表示按位异或运算。
求使得 $[L,R]$ 区间内**至多**有 $k$ 个 $\tt1$ 的最小操作次数。询问之间相互独立,也就是说,每次询问后重置为初始序列。
输入输出格式
输入格式
从标准输入读入数据。
第一行包含三个正整数 $n,k,q$。
第二行包含 $n$ 个非负整数 $a_1,a_2,\cdots,a_n$。
接下来 $q$ 行,每行包含两个正整数 $L,R$,表示一次询问。
输出格式
输出到标准输出。
输出共 $q$ 行,每行包含一个整数,表示答案。
输入输出样例
输入样例 #1
5 1 2
1 1 1 0 1
2 3
1 3
输出样例 #1
1
1
输入样例 #2
20 3 22
0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 0 1 0 1
12 15
1 6
5 10
2 5
9 18
6 17
2 13
4 16
2 8
9 19
10 15
7 15
1 3
14 18
6 17
12 14
7 16
14 18
11 12
3 5
3 6
3 15
输出样例 #2
0
1
0
0
0
6
3
5
1
0
0
0
0
0
6
0
0
0
0
0
1
3
说明
**【样例 1 解释】**
如图,用绿色代表 $\tt0$,红色代表 $\tt1$,初始序列如下:
![](https://cdn.luogu.com.cn/upload/image_hosting/hxw9knxu.png)
对于第 $1$ 次询问,选择 $i=3$,则序列变为下图:
![](https://cdn.luogu.com.cn/upload/image_hosting/zvb2lfi8.png)
对于第 $2$ 次询问,选择 $i=2$,则序列变为下图:
![](https://cdn.luogu.com.cn/upload/image_hosting/wubvxvaa.png)
**【样例 2 解释】**
对于第 $1$ 次询问,由于 $a_{12},a_{13},a_{14},a_{15}$ 中只有 $2$ 个 $\tt1$,所以不需要进行任何操作。
对于第 $6$ 次询问,可以依次选择 $i=\{7,8,9,10,11,12\}$。
**【样例 3】**
见选手文件中的 `control/control3.in` 与 `control/control3.ans`。
此样例满足测试点 $7\sim10$ 的限制。
**【样例 4】**
见选手文件中的 `control/control4.in` 与 `control/control4.ans`。
此样例满足测试点 $15\sim17$ 的限制。
**【样例 5】**
见选手文件中的 `control/control5.in` 与 `control/control5.ans`。
此样例满足测试点 $18\sim21$ 的限制。
***
**【数据范围】**
对于 $100\%$ 的数据, $2\le n\le 3~000$,$1\le k\le
\min(n,1~000)$,$1\le q\le 5\times10^5$,$0\le a_i\le 1$。
|测试点编号|$n\le$|$k\le$|$q\le$|特殊性质|
|:--:|:--:|:--:|:--:|:--:|
|$1\sim3$|$80$|$50$|$2~000$|无|
|$4\sim6$|$400$|$300$|$1$|$k$ 是偶数|
|$7\sim10$|$400$|$2$|$10~000$|无|
|$11\sim14$|$400$|$300$|$10~000$|无|
|$15\sim17$|$3~000$|$10$|$5\times10^5$|无|
|$18\sim21$|$3~000$|$1~000$|$5\times10^5$|$k$ 是偶数|
|$22\sim25$|$3~000$|$1~000$|$5\times10^5$|无|