P17715 [HexOI Round 1] 交朋友 / friends

题目背景

题目来源:【HT-130-Div.3】核桃 CSP-J 组模拟赛 [HexOI](https://www.luogu.com.cn/team/85094) 欢迎您。

题目描述

小 Hex 的班上正在开展一项游戏! 班上有 $n$ 个小朋友围成一圈,其中小 Hex 的编号为 $1$。从小 Hex 开始,小朋友们按顺时针被编号为 $1,2,3,\dots,n$。第 $i$ 个小朋友的左边是第 $i-1$ 号小朋友,右边是第 $i+1$ 号小朋友。特别地,第 $n$ 号小朋友的右边是第 $1$ 号小朋友,第 $1$ 号小朋友的左边是第 $n$ 号小朋友。 由于小朋友们都学习了编程,他们只喜欢 $0$ 和 $1$ 两个数字中的恰好一个数字。初始时,第 $i$ 位小朋友最喜欢的数字为 $a_i$。 小朋友们想交朋友。每一位小朋友都想和他**左右相邻**的两个小朋友交朋友。朋友之间要有相同的喜好,因此两位小朋友会交朋友当且仅当他们喜欢的数字**相同**。 现在老师会执行 $m$ 次操作,每次操作会改变一些小朋友喜欢的数字。具体地,第 $i$ 次操作会让 $[l_i,r_i]$ 范围内的**所有**小朋友喜欢的数字取反$^\dag$。每次操作完后,小朋友们会重新建立朋友关系。 小 Hex 想知道,每一次操作过后,班上共有几对好朋友? $^\dag$:取反,即 $1$ 变成 $0$,$0$ 变成 $1$。

输入格式

输入的第一行包含两个正整数 $n,m$,分别表示班级人数和修改次数。 输入的第二行包含 $n$ 个整数,第 $i$ 个数表示 $a_i$。 输入的第 $i+2\ (1\leq i \leq m)$ 行包含两个正整数 $l_i,r_i$,表示修改的起点和终点。

输出格式

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

说明/提示

#### 【样例 1 解释】 初始序列为 $1,0,0,0$。 **第 1 次修改**:将编号为 $3$ 的小朋友喜欢的数字取反。 - 新序列:$1,0,\red{1},0$。 - 好朋友对:无,答案为 $0$。详细的解释如下: - 对于第 $1$ 号和第 $2$ 号小朋友,他们喜欢的数字不同($1$ 和 $0$),因此他们不是好朋友; - 对于第 $2$ 号和第 $3$ 号小朋友,他们喜欢的数字不同($0$ 和 $1$),因此他们不是好朋友; - 对于第 $3$ 号和第 $4$ 号小朋友,他们喜欢的数字不同($1$ 和 $0$),因此他们不是好朋友; - 对于第 $4$ 号和第 $1$ 号小朋友,他们喜欢的数字不同($0$ 和 $1$),因此他们不是好朋友。 **第 2 次修改**:将编号为 $1$ 至 $3$ 的小朋友喜欢的数字取反。 - 新序列:$\red{0,1,0},0$。 - 好朋友对:$(3,4),(4,1)$,答案为 $2$。详细的解释如下: - 对于第 $1$ 号和第 $2$ 号小朋友,他们喜欢的数字不同($0$ 和 $1$),因此他们不是好朋友; - 对于第 $2$ 号和第 $3$ 号小朋友,他们喜欢的数字不同($1$ 和 $0$),因此他们不是好朋友; - 对于第 $3$ 号和第 $4$ 号小朋友,他们喜欢的数字相同(都为 $0$),因此他们是好朋友; - 对于第 $4$ 号和第 $1$ 号小朋友,他们喜欢的数字相同(都为 $0$),因此他们是好朋友。 **第 3 次修改**:将编号为 $2$ 的小朋友喜欢的数字取反。 - 新序列:$0,\red{0},0,0$。 - 好朋友对:$(1,2),(2,3),(3,4),(4,1)$,答案为 $4$。详细的解释如下: - 对于第 $1$ 号和第 $2$ 号小朋友,他们喜欢的数字相同(都为 $0$),因此他们是好朋友; - 对于第 $2$ 号和第 $3$ 号小朋友,他们喜欢的数字相同(都为 $0$),因此他们是好朋友; - 对于第 $3$ 号和第 $4$ 号小朋友,他们喜欢的数字相同(都为 $0$),因此他们是好朋友; - 对于第 $4$ 号和第 $1$ 号小朋友,他们喜欢的数字相同(都为 $0$),因此他们是好朋友。 **第 4 次修改**,将编号为 $1$ 至 $4$ 的小朋友喜欢的数字取反。 - 新序列:$\red{1,1,1,1}$。 - 好朋友对:$(1,2),(2,3),(3,4),(4,1)$,答案为 $4$。详细的解释如下: - 对于第 $1$ 号和第 $2$ 号小朋友,他们喜欢的数字相同(都为 $1$),因此他们是好朋友; - 对于第 $2$ 号和第 $3$ 号小朋友,他们喜欢的数字相同(都为 $1$),因此他们是好朋友; - 对于第 $3$ 号和第 $4$ 号小朋友,他们喜欢的数字相同(都为 $1$),因此他们是好朋友; - 对于第 $4$ 号和第 $1$ 号小朋友,他们喜欢的数字相同(都为 $1$),因此他们是好朋友。 #### 【样例 3】 见选手目录下的 friends/friends3.in 与 friends/friends3.ans。 该样例满足测试点 $1,2$ 的约束条件。 #### 【样例 4】 见选手目录下的 friends/friends4.in 与 friends/friends4.ans。 该样例满足测试点 $3$ 的约束条件。 #### 【样例 5】 见选手目录下的 friends/friends5.in 与 friends/friends5.ans。 该样例满足测试点 $4$ 的约束条件。 #### 【样例 6】 见选手目录下的 friends/friends6.in 与 friends/friends6.ans。 该样例满足测试点 $5,6$ 的约束条件。 #### 【样例 7】 见选手目录下的 friends/friends7.in 与 friends/friends7.ans。 该样例满足测试点 $7,8$ 的约束条件。 #### 【样例 8】 见选手目录下的 friends/friends8.in 与 friends/friends8.ans。 该样例满足测试点 $9\sim 12$ 的约束条件。 #### 【样例 9】 见选手目录下的 friends/friends9.in 与 friends/friends9.ans。 该样例满足测试点 $13,14$ 的约束条件。 #### 【样例 10】 见选手目录下的 friends/friends10.in 与 friends/friends10.ans。 该样例满足测试点 $15\sim 20$ 的约束条件。 #### 【数据范围】 对于所有测试数据,保证: - $3\leq n\leq 10^5$; - $1\leq m\leq 10^5$; - 对于所有 $i(1\leq i\leq n)$,均有 $a_i=0$ 或 $a_i=1$; - 对于所有 $i(1\leq i\leq m)$,均有 $1\leq l_i\leq r_i\leq n$。 ::cute-table{tuack} |测试点编号| $n$ | $m$ | $a_i(1\leq i\leq n)$ | 特殊性质 | |:--:|:--:|:--:|:--:|:-:| |$1,2$|$\leq 10^5$|$=1$|无|无| |$3$|$\leq 10^3$|$\leq 10^3$|^|A| |$4$|^|^|^|B| |$5,6$|^|^|$=i\bmod 2$|无| |$7,8$|^|^|$=0$|^| |$9\sim 12$|^|^|无|^| |$13,14$|$\leq 10^5$|$\leq 10^5$|$=0$|^| |$15\sim 20$|^|^|无|^| 特殊性质 A:对于所有 $i(1\leq i\leq m)$,都有 $l_i=2$ 且 $r_i=n-1$。 特殊性质 B:对于所有 $i(1\leq i\leq m)$,都有 $l_i=r_i$。