P17771 开关灯 II
题目描述
旅途中,小 D 住进了一间装有环形灯带的房间。睡觉前,他发现遥控器出了故障:每次操作都会同时切换连续的几盏灯。小 D 想用尽量少的操作把所有灯关掉。
灯带上共有 $n$ 盏灯,沿顺时针方向依次编号为 $0,1,\ldots,n-1$。其中,编号为 $n-1$ 的灯的下一盏是编号为 $0$ 的灯。
每次操作,小 D 可以任选一个编号 $p$,同时切换从 $p$ 开始、沿顺时针方向**连续的恰好 $k$ 盏灯**的状态,所选区间可以跨过圆环首尾。也就是说,编号为 $p,(p+1)\bmod n,\ldots,(p+k-1)\bmod n$ 的灯都会改变状态:亮灯变为灭灯,灭灯变为亮灯。不同操作可以选择相同的起点。
初始亮着的灯由 $m$ 个区间描述。第 $i$ 个区间为 $[l_i,r_i)$,表示编号满足 $l_i\le j
输入格式
从标准输入读入数据。
第一行包含一个正整数 $T$,表示测试数据组数。
对于每组测试数据:
- 第一行包含三个整数 $n,k,m$,分别表示灯的数量、每次操作切换的灯的数量,以及描述初始亮灯的区间数量。
- 接下来 $m$ 行,第 $i$ 行包含两个整数 $l_i,r_i$,表示区间 $[l_i,r_i)$。
输出格式
输出到标准输出。
对于每组测试数据,输出一行一个整数,表示最少操作次数;如果无解,输出 $-1$。
说明/提示
### 样例 1 解释
1. 第一组数据中,可以依次选择 $0,1,3$ 为起点进行操作,将所有灯关掉。最少需要 $3$ 次操作。
2. 第二组数据中,初始有 $3$ 盏亮灯。每次切换 $2$ 盏灯,亮灯数量的奇偶性不会改变,因此无法把所有灯关掉。
3. 第三组数据中,可以依次选择 $1,3$ 为起点进行操作。第二次操作会切换编号为 $3,0,1$ 的灯。
4. 第四组数据中,所有灯初始均为亮灯。分别以 $0,2,4$ 为起点操作即可。
5. 第五组数据中,两个给定区间首尾相接,初始亮灯的编号为 $1,2,3$。以 $1$ 为起点操作一次即可。
该样例同时保存在题目附件中的 `lights/lights1.in` 与 `lights/lights1.ans` 中。
### 样例 2
见题目附件中的 `lights/lights2.in` 与 `lights/lights2.ans`。该样例满足特殊性质 B。
### 样例 3
见题目附件中的 `lights/lights3.in` 与 `lights/lights3.ans`。该样例满足特殊性质 C。
### 样例 4
见题目附件中的 `lights/lights4.in` 与 `lights/lights4.ans`。该样例满足全部数据的约束条件,不保证满足任何特殊性质。
### 数据范围与测试点
对于全部数据,保证:
- $1\le T\le 10^5$;
- $2\le n\le 10^9$,$1\le k