#CF2184G. Nastiness of Segments
Nastiness of Segments
题目描述
Andrey 记得自己有 个方块,这些方块编号从 到 。在编号为 的方块上,最初写着一个整数 。他将这些方块按照编号递增的顺序排成一排:最前面是 号方块,然后是 号方块,以此类推,最后是 号方块。
对于一段连续的方块区间 (),我们称一个整数 ()是“nasty”的,如果 。
Andrey 很好奇,所以他想要进行 次两种类型的操作之一:
- 将第 个方块上的数字 改成 。
- 查询区间 ()的 nastiness,其中“nastiness”指的是该区间内“nasty”数 ()的个数。
Andrey 不知道如何快速处理这些操作,因此他向你求助。请你帮助他完成上述操作!
输入格式
第一行包含一个整数 (),表示测试用例的数量。
每个测试用例的第一行包含两个整数 和 (),分别表示方块的数量和操作的数量。
接下来一行包含 个整数 (),表示最初每个方块上写的数字。
接下来的 行描述需要执行的操作。
每行的开头是一个整数 (),表示操作类型。
若 ,则后面跟着两个整数 ()和 (),表示第一种操作。
若 ,则后面跟着两个整数 和 (),表示第二种操作。
保证所有测试用例中 的总和不超过 , 的总和也不超过 。
输出格式
对于每个测试用例,对于每一个第二类型的操作,输出一个整数,表示该区间的 nastiness。
样例
1
5 5
1 2 3 4 5
2 1 5
1 1 5
1 2 5
1 3 1
2 1 5
1
0
样例说明
由 ChatGPT 5 翻译
来源
Codeforces 2184G,英文题名 Nastiness of Segments。