#2. 群山之巅(洛谷P3203加强:数据卡lct)

群山之巅(洛谷P3203加强:数据卡lct)

实际难度:入门---

题目背景

link cut tree 只有40pts

出题人说:“年纪轻轻的写什么lct,你说[本题正解]不香吗?”

题目描述

爬山的路上,有 nn 个弹跳装置,准确来说,位于第 ii 个位置的弹跳装置有一个数值 aia_i,走上装置后可以可以到位置 i+aii+a_i

你想爬上山的最高峰,也就是你的位置 n\ge n 。有 mm 个操作:

1 x 询问从 xx 出发几下可以弹到山的最高峰。(x<n)(x<n)

2 x yxx 的位置的数值变成 yy(x<n)(x<n)

注意,数组下标(位置)从零开始

输入格式

第一行两个整数nnmm(0<n2×105,0<m1060<n\le2 \times 10^5,0<m\le10^6)

第二行 nn 个整数 aia_i

接下来 mm 行描述每个操作

输出格式

对于每个 22 操作输出一行一个整数表示答案,若这是不可能的,输出 1-1

输入输出样例 #1

输入 #1

1 1
0
1 0

输出 #1

-1

输入输出样例 #2

输入 #2

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

输出 #2

2
3

说明/提示

本题稍微卡常,建议使用快读快写

0ai109 0 \le a_i \le10^9

数据在NOI Linux 下生成

数据点 时间(ms) 空间(mb) 子任务 分值 nn\le mm\le
1 75 16 2 60 50000 100000
2 1500 200000 1000000
3 2000 0 10 10000
4
5
6
7 500 1 30 200000 200000
8 1300 2 60 1000000

Subtask最小分值、最大时间

总分加和