传统题 文件IO:plan 1000ms 256MiB

计划

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

给你一个由 nn 条指令组成的程序。最初,一个变量 xx 被赋值给 00 。之后,指令有两种类型:

  • xx 增加 11
  • xx 减少 11

您将得到 mm 个查询,其格式如下:

  • 查询 ll rr - 如果忽略第 ll 个指令和第 rr 个指令(包括第 ll 个指令和第 rr 个指令)之间的所有指令,并且在不改变顺序的情况下执行其他指令,那么 xx 被分配给多少个不同的值?

输入格式

输入

第一行包含一个整数 tt ( 1t10001 \le t \le 1000 ) - 测试用例数。

然后是 tt 个测试用例的描述。

每个测试用例的第一行包含两个整数 nnmm ( 1n,m21051 \le n, m \le 2 \cdot 10^5 )--程序指令数和查询次数。

每个测试用例的第二行包含一个程序--一个由 nn 个字符组成的字符串:每个字符要么是 "+",要么是"-"--分别是递增指令和递减指令。

接下来的每 mm 行包含两个整数 llrr1lrn1 \le l \le r \le n )--查询描述。

所有测试用例中 nn 的总和不超过 21052 \cdot 10^5 。所有测试用例中 mm 的总和不超过 21052 \cdot 10^5

输出格式

输出

为每个测试用例打印 mm 个整数 - 为每个查询 ll , rr 打印变量 xx 被赋值的不同值的个数,前提是忽略 ll (第 1 个)和 rr (第 3 个)之间的所有指令,并在不改变顺序的情况下执行其余指令。

2
8 4
-+--+--+
1 8
2 8
2 5
1 1
4 10
+-++
1 1
1 2
2 2
1 3
2 3
3 3
1 4
2 4
3 4
4 4

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

第一个测试用例中的每个查询所保留的指令是

  1. 空程序 - xx 只等于 00
  2. "-" - xx 的值为 001-1
  3. "---+" - xx 的值为 001-12-23-32-2 --其中有 44 个不同的值;
  4. "+--+--+"--不同的值有 11001-12-2

2025暑期集训终测

未参加
状态
已结束
规则
OI
题目
8
开始于
2025-8-17 9:00
结束于
2025-8-17 16:00
持续时间
7 小时
主持人
参赛人数
15