幸运率
无论回忆是什么, 我们都要经历它。给定一个由 "0" 和 "1" 组成的二进制字符串, 在每个操作中, 我们选择一个数字x并在 【设x = 1,就在1,2,3,4…n处。设x = 2,就在2,4,6,8,10…处,设x = 3,就在3,6,9,12…处】处取反(这意味着我们将 "0" 变为 "1", 反之亦然)。我们将幸运率定义为将整个二进制字符串转换为 "0" 所需的最小操作数。【注:这段是描述幸运率的概念,下面这段才是题目】
给定由 n 位组成的二进制字符串。最初, 二进制字符串包含n个‘0’,通过m步操作, 每个操作将提供一个段[li;ri],这表示在段[li;ri]都将被求反【就是从第l个数(含)到第r个数(含)这一段都被求反】
你应该回答每步操作后的幸运率。
输入
第一行包含整数T, 表示测试用例的数量。在每个测试用例中, 第一行包含两个整数 n和m。下面的 m 行每个包含两个整数l和r。
·1 ≤ T ≤ 10
·1 ≤ n ≤ 104
·1 ≤ m ≤ 105
·1≤ li ≤ ri ≤n
·0 < ∑n ≤ 2×104
·0 < ∑m ≤ 2×105
输出
对于每个测试用例, 输出m行。 第i−th 行包含一个整数,表示经过 i−th 步修改【即上文中的“操作”】后的二进制字符串的幸运率 。
采样输入
1【测试用例为1,就只有1串字符串】
4 4【第1串字符串有4位,进行4步操作】
1 2【反转第1,2位】
3 4【反转第3,4位】
2 3【反转第2,3位】
1 3【反转1,2,3位】
样品输出
3
【
反转后为1100,
m1(第一次操作时,下同)设x = 1,得到0011;
m2时,设x = 3,得到0001;
m3时设x = 4,得到0000
】
1
【
反转后为1111,
m1时设x = 1,得到0000
】
4
【
反转后为1001,
m1时设x = 1,得到0110;
m2时设x = 2,得到0011;
m3时设x = 3,得到0001;
m4时设x = 4,得到0000
】
2
【
反转后为0111,
m1时设x = 2,得到0010;
m2时设x = 3,得到0000;
】