#P12460. [UOI 2025] Simple Subsequence

[UOI 2025] Simple Subsequence

题目描述

我们称一个整数数组 d1,d2,,dmd_1, d_2, \ldots, d_m好的,如果其长度为 00,或者对于任意 1im1 \le i \le mj=1idj\sum\limits_{j=1}^{i} d_jj=imdj\sum\limits_{j=i}^{m} d_j 都非负。其中 j=lrdj\sum\limits_{j=l}^{r} d_j 表示 dl+dl+1++drd_l + d_{l+1} + \ldots + d_r

我们定义数组的 美丽值 为其最长 好的 子序列1^1的长度。

给定一个长度为 nn 的数组 aa,其元素仅由 1-111 组成

你需要处理 qq 个查询,查询分为两种类型:

  • 将元素 apa_p 替换为 ap-a_p,其中 pp 为查询参数;
  • 查询由元素 [al,al+1,,ar][a_{l}, a_{l+1}, \ldots, a_r] 组成的数组的 美丽值,其中 (l,r)(l, r) 为查询参数。

输入格式

第一行包含两个整数 nn, qq (1n,q5105)(1 \le n, q \le 5 \cdot 10^5) —— 数组 aa 的长度和查询的数量。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n (ai{1,1})(a_i \in \{-1, 1\}) —— 数组 aa 的元素。

接下来的 qq 行描述查询。第一个数字 typeitype_i (1typei2)(1 \le type_i \le 2) 表示查询类型。类型为 11 的查询格式为 1 p\texttt{1 p} (1pn)(1 \le p \le n),类型为 22 的查询格式为 2 l r\texttt{2 l r} (1lrn)(1 \le l \le r \le n)

输出格式

对于每个类型为 22 的查询,输出一行一个整数 —— 对应数组的美丽值

输入输出样例 #1

输入 #1

5 4
1 1 1 -1 1
2 1 5
1 3
2 1 4
2 2 5

输出 #1

5
2
3

输入输出样例 #2

输入 #2

4 4
1 1 1 -1
2 1 2
2 2 4
2 3 3
2 3 4

输出 #2

2
2
1
1

说明/提示

1^1 数组 cc 称为数组 bb 的子序列,如果可以通过从 bb 中删除若干元素(可能为零)得到 cc。空数组是任何数组的子序列。

评分标准

  • 22 分):对于所有 1in1 \le i \le nai=(1)i+1a_i = (-1)^{i+1},且没有类型 11 的查询;
  • 77 分):n16n \le 16,且没有类型 11 的查询;
  • 2121 分):n,q100n, q \le 100
  • 2020 分):n,q3000n, q \le 3000
  • 2727 分):n,q2105n, q \leq 2 \cdot 10^5,且没有类型 11 的查询;
  • 1414 分):n,q2105n, q \leq 2 \cdot 10^5
  • 99 分):无额外限制。