33OJ
登录 注册

#P17715. [HexOI Round 1] 交朋友 / friends

[HexOI Round 1] 交朋友 / friends

背景

题目来源:【HT-130-Div.3】核桃 CSP-J 组模拟赛

HexOI 欢迎您。

题目描述

小 Hex 的班上正在开展一项游戏!

班上有 nn 个小朋友围成一圈,其中小 Hex 的编号为 11。从小 Hex 开始,小朋友们按顺时针被编号为 1,2,3,…,n1,2,3,\dots,n。第 ii 个小朋友的左边是第 i−1i-1 号小朋友,右边是第 i+1i+1 号小朋友。特别地,第 nn 号小朋友的右边是第 11 号小朋友,第 11 号小朋友的左边是第 nn 号小朋友。

由于小朋友们都学习了编程,他们只喜欢 00 和 11 两个数字中的恰好一个数字。初始时,第 ii 位小朋友最喜欢的数字为 aia_i。

小朋友们想交朋友。每一位小朋友都想和他左右相邻的两个小朋友交朋友。朋友之间要有相同的喜好,因此两位小朋友会交朋友当且仅当他们喜欢的数字相同。

现在老师会执行 mm 次操作,每次操作会改变一些小朋友喜欢的数字。具体地,第 ii 次操作会让 [li,ri][l_i,r_i] 范围内的所有小朋友喜欢的数字取反†^\dag。每次操作完后,小朋友们会重新建立朋友关系。

小 Hex 想知道,每一次操作过后,班上共有几对好朋友?

†^\dag:取反,即 11 变成 00,00 变成 11。

输入格式

输入的第一行包含两个正整数 n,mn,m,分别表示班级人数和修改次数。

输入的第二行包含 nn 个整数,第 ii 个数表示 aia_i。

输入的第 i+2 (1≤i≤m)i+2\ (1\leq i \leq m) 行包含两个正整数 li,ril_i,r_i,表示修改的起点和终点。

输出格式

输出的第 i (1≤i≤m)i\ (1\leq i\leq m) 行包含一个非负整数,表示在第 ii 次修改后班上好朋友的对数。

4 4
1 0 0 0
3 3
1 3
2 2
1 4

0
2
4
4

11 10
1 1 0 1 1 0 1 0 1 0 0
1 1
1 4
2 5
1 6
1 4
4 11
4 8
1 6
1 11
10 11

3
1
3
5
5
7
7
5
5
7

提示

【样例 1 解释】

初始序列为 1,0,0,01,0,0,0。

第 1 次修改:将编号为 33 的小朋友喜欢的数字取反。

  • 新序列:1,0,1,01,0,\red{1},0。
  • 好朋友对:无,答案为 00。详细的解释如下:
    • 对于第 11 号和第 22 号小朋友,他们喜欢的数字不同(11 和 00),因此他们不是好朋友;
    • 对于第 22 号和第 33 号小朋友,他们喜欢的数字不同(00 和 11),因此他们不是好朋友;
    • 对于第 33 号和第 44 号小朋友,他们喜欢的数字不同(11 和 00),因此他们不是好朋友;
    • 对于第 44 号和第 11 号小朋友,他们喜欢的数字不同(00 和 11),因此他们不是好朋友。

第 2 次修改:将编号为 11 至 33 的小朋友喜欢的数字取反。

  • 新序列:0,1,0,0\red{0,1,0},0。
  • 好朋友对:(3,4),(4,1)(3,4),(4,1),答案为 22。详细的解释如下:
    • 对于第 11 号和第 22 号小朋友,他们喜欢的数字不同(00 和 11),因此他们不是好朋友;
    • 对于第 22 号和第 33 号小朋友,他们喜欢的数字不同(11 和 00),因此他们不是好朋友;
    • 对于第 33 号和第 44 号小朋友,他们喜欢的数字相同(都为 00),因此他们是好朋友;
    • 对于第 44 号和第 11 号小朋友,他们喜欢的数字相同(都为 00),因此他们是好朋友。

第 3 次修改:将编号为 22 的小朋友喜欢的数字取反。

  • 新序列:0,0,0,00,\red{0},0,0。
  • 好朋友对:(1,2),(2,3),(3,4),(4,1)(1,2),(2,3),(3,4),(4,1),答案为 44。详细的解释如下:
    • 对于第 11 号和第 22 号小朋友,他们喜欢的数字相同(都为 00),因此他们是好朋友;
    • 对于第 22 号和第 33 号小朋友,他们喜欢的数字相同(都为 00),因此他们是好朋友;
    • 对于第 33 号和第 44 号小朋友,他们喜欢的数字相同(都为 00),因此他们是好朋友;
    • 对于第 44 号和第 11 号小朋友,他们喜欢的数字相同(都为 00),因此他们是好朋友。

第 4 次修改,将编号为 11 至 44 的小朋友喜欢的数字取反。

  • 新序列:1,1,1,1\red{1,1,1,1}。
  • 好朋友对:(1,2),(2,3),(3,4),(4,1)(1,2),(2,3),(3,4),(4,1),答案为 44。详细的解释如下:
    • 对于第 11 号和第 22 号小朋友,他们喜欢的数字相同(都为 11),因此他们是好朋友;
    • 对于第 22 号和第 33 号小朋友,他们喜欢的数字相同(都为 11),因此他们是好朋友;
    • 对于第 33 号和第 44 号小朋友,他们喜欢的数字相同(都为 11),因此他们是好朋友;
    • 对于第 44 号和第 11 号小朋友,他们喜欢的数字相同(都为 11),因此他们是好朋友。

【样例 3】

见选手目录下的 friends/friends3.in 与 friends/friends3.ans。

该样例满足测试点 1,21,2 的约束条件。

【样例 4】

见选手目录下的 friends/friends4.in 与 friends/friends4.ans。

该样例满足测试点 33 的约束条件。

【样例 5】

见选手目录下的 friends/friends5.in 与 friends/friends5.ans。

该样例满足测试点 44 的约束条件。

【样例 6】

见选手目录下的 friends/friends6.in 与 friends/friends6.ans。

该样例满足测试点 5,65,6 的约束条件。

【样例 7】

见选手目录下的 friends/friends7.in 与 friends/friends7.ans。

该样例满足测试点 7,87,8 的约束条件。

【样例 8】

见选手目录下的 friends/friends8.in 与 friends/friends8.ans。

该样例满足测试点 9∼129\sim 12 的约束条件。

【样例 9】

见选手目录下的 friends/friends9.in 与 friends/friends9.ans。

该样例满足测试点 13,1413,14 的约束条件。

【样例 10】

见选手目录下的 friends/friends10.in 与 friends/friends10.ans。

该样例满足测试点 15∼2015\sim 20 的约束条件。

【数据范围】

对于所有测试数据,保证:

  • 3≤n≤1053\leq n\leq 10^5;
  • 1≤m≤1051\leq m\leq 10^5;
  • 对于所有 i(1≤i≤n)i(1\leq i\leq n),均有 ai=0a_i=0 或 ai=1a_i=1;
  • 对于所有 i(1≤i≤m)i(1\leq i\leq m),均有 1≤li≤ri≤n1\leq l_i\leq r_i\leq n。

::cute-table{tuack}

测试点编号 nn mm ai(1≤i≤n)a_i(1\leq i\leq n) 特殊性质
1,21,2 ≤105\leq 10^5 =1=1 无
33 ≤103\leq 10^3 ^ A
44 ^ B
5,65,6 =i mod 2=i\bmod 2 无
7,87,8 =0=0 ^
9∼129\sim 12 无
13,1413,14 ≤105\leq 10^5 =0=0
15∼2015\sim 20 ^ 无

特殊性质 A:对于所有 i(1≤i≤m)i(1\leq i\leq m),都有 li=2l_i=2 且 ri=n−1r_i=n-1。

特殊性质 B:对于所有 i(1≤i≤m)i(1\leq i\leq m),都有 li=ril_i=r_i。