#31153. presuffix

presuffix

题目描述

数组 x1,x2,,xkx_1,x_2,\cdots,x_k 的前缀和数组 y1,y2,,yky_1,y_2,\cdots,y_k 满足 yi=x1+x2++xiy_i =x_1+x_2+\cdots+x_i,后缀和数组 z1,z2,,zkz_1,z_2,\cdots,z_k 满足 zi=xk+xk1++xiz_i=x_k+x_{k-1}+\cdots+x_i

给定整数数组 a1,a2,,aNa_1,a_2,\cdots,a_{N},可以为负。有三种操作:

  1. 将每个元素乘上 1-1,即变为它们的相反数。
  2. 选择 aa 的一个区间 [l,r][l,r],将 al,al+1,,ara_l,a_{l+1},\cdots,a_{r} 替换成当前 al,al+1,,ara_l,a_{l+1},\cdots,a_{r} 的前缀和数组。
  3. 选择 aa 的一个区间 [l,r][l,r],将 al,al+1,,ara_l,a_{l+1},\cdots,a_{r} 替换成当前 al,al+1,,ara_l,a_{l+1},\cdots,a_{r} 的后缀和数组。

每一次操作完后,对于所有数 aia_i,将 aia_i 变为 max{min{ai,1018},1018}\max\{\min\{a_i,10^{18}\},-10^{18}\}

请你最小化操作的次数,使得 aa 中所有元素变得非负。

输入格式

第一行两个正整数 N,idN,id,其中 idid 表示子任务编号,对于样例,id=0id=0

第二行 NN 个整数 a1,a2,,ana_1,a_2,\cdots,a_n

输出格式

第一行一个非负整数 KK 表示操作次数。

接下来 KK 行,每行形如:

  • 11
  • 2 l r2 \space l \space r
  • 3 l r3 \space l \space r

表示操作种类和 2,32,3 类操作的操作区间。

本题存在 SPJ,请参见“数据范围与约定”。

7 0
0 0 1 -1 -1 -1 1
2
3 1 3
2 1 7

样例解释 #1

第一次操作完,a=1,1,1,1,1,1,1a=1,1,1,-1,-1,-1,1

第二次操作完,a=1,2,3,2,1,0,1a=1,2,3,2,1,0,1

数据范围与提示

对于所有数据,有:

  • 1n2×1051 \le n \le 2 \times 10^5
  • 1ai1-1 \le a_i \le 1

本题存在 SPJ,对于某个子任务,令 K1K_1 为你的操作次数,K2K_2 为最小的操作次数,若 K1K2limK_1-K_2 \le lim,则你的输出被认为是正确的,limlim 对于每个子任务均不同

子任务 NN \le 特殊性质 lim=lim= 分值
11 2×1052 \times 10^5 K21K_2 \le 1 00 77
22 100100 1111
33 33 2121
44 11 55
55 3×1033 \times 10^3 存在只用 22 操作最小化操作数的方案 00 1111
66 2×1052 \times 10^5 1919
77 3×1033 \times 10^3 1010
88 2×1052 \times 10^5 1616