QOJ.ac

QOJ

時間限制: 3.0 s 記憶體限制: 1024 MB 總分: 100 可 Hack ✓

#18461. 羊灵生息

统计

Wookje 正在玩《英雄联盟》游戏,游戏中两支玩家队伍相互对抗。每个玩家控制一个英雄,其状态可以用两个整数表示:当前生命值 $h$ 和最大生命值 $H$。如果英雄的生命值小于或等于零($h \le 0$),该英雄死亡并立即离开游戏,此时 $h = 0$。如果英雄的生命值超过了最大生命值($h > H$),则其生命值会被调整为最大生命值 $H$。$H$ 始终是一个正整数。

在团战中,英雄的生命值可能会增加或减少。具体来说,在一次团战中,英雄会受到 $n$ 次操作的影响。第 $i$($1 \le i \le n$)次操作会使英雄的生命值增加 $a_i$(同样遵循上述规则)。如果 $a_i$ 为正数,表示英雄获得了治疗;如果 $a_i$ 为负数,表示英雄受到了攻击;如果 $a_i$ 为零,则英雄没有发生任何变化。

Wookje 在《英雄联盟》中最喜欢的英雄是永猎双子——千珏(Kindred)。千珏拥有一个名为“羊灵生息”(Lamb's Respite)的终极技能。让我们来看看这个技能的效果。

正式地,考虑一个最大生命值为 $H$ 的英雄。如果 Wookje 在第 $l$ 次操作即将开始前,到第 $r$ 次操作刚刚结束后激活了“羊灵生息”,那么在这些操作期间,英雄的生命值永远不会降至 $\lceil H / 10 \rceil$ 以下。如果在第 $l$ 次操作即将开始前,英雄的生命值已经小于或等于 $\lceil H / 10 \rceil$;或者对于某个 $l \le i \le r$,在第 $i$ 次操作之后,英雄的生命值在假设情况下会小于或等于 $\lceil H / 10 \rceil$,那么它的生命值将被设定为 $\lceil H / 10 \rceil$,并且在第 $r$ 次操作结束之前不会再发生任何改变。否则,“羊灵生息”不会对英雄生命值的变化产生任何影响。

在何时激活“羊灵生息”是一个非常重要的决策。Wookje 想要提高自己的决策水平。然而,团战过于复杂,他很难知道何时应该激活“羊灵生息”。为了帮助他,请处理以下 $q$ 个查询:

  • 1 l r x:英雄的最大生命值为 $x$,且初始生命值为 $x$。“羊灵生息”在第 $l$ 次操作即将开始前到第 $r$ 次操作刚刚结束后处于激活状态。输出在全部 $n$ 次操作后英雄的生命值。如果英雄死亡,输出 0。($1 \le l \le r \le n$,$1 \le x \le 10^9$)。
  • 2 i x:将 $a_i$ 修改为 $x$。($1 \le i \le n$,$-10^9 \le x \le 10^9$)。

输入格式

第一行包含两个整数 $n$ 和 $q$($1 \le n, q \le 300\,000$)。

第二行包含 $n$ 个整数。第 $i$ 个整数为 $a_i$($|a_i| \le 10^9$)。

接下来的 $q$ 行,每行包含若干个整数,表示上述格式的查询。

输入中至少包含一个类型为 1 的查询。

输出格式

对于每个类型为 1 的查询,输出一个整数表示该查询的答案。每个答案占一行。

样例

输入样例 1

4 10
0 1 1 -1
1 2 4 2
2 2 -1
1 2 4 2
1 2 3 2
2 1 -1
1 1 4 2
1 2 4 2
2 1 -2
1 1 4 2
1 2 4 2

输出样例 1

1
1
0
1
1
1
0

输入样例 2

6 6
2 5 -3 8 1 -4
1 2 5 7
1 1 3 2
2 2 -1
1 4 6 2
2 1 -1
1 1 6 6

输出样例 2

3
0
0
1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.