logo AlgoBeat OnlineJudge
登录 注册

#215634. [KTSC 2026] 瞭望塔 / Observation Tower

内存限制:2048 MiB 时间限制:6000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

座瞭望塔,依次编号 。塔 的高度为 ,其瞭望分数为 。初始,

对于 ,我们称塔 能从塔 瞭望到,当且仅当对于任意 ,都有 。注意, 时,塔 不能从塔 瞭望到。

当从某座塔上执行一次瞭望操作时,能从这座塔瞭望到的所有塔的瞭望分数都会自增

现在有 个事件,每个事件是如下的三个类型之一:

  • 瞭望:给定 ),在塔 上执行一次瞭望操作。
  • 测量:给定 ),计算
  • 平移:给定 )。对于任意 ,令

瞭望事件用数组 表示;测量事件用数组 表示;平移事件用数组 表示。注意到这三类事件的数组大小均不同,所以可以用数组大小区分不同的事件类型。

事件按照 的顺序依次发生,事件 表示。

令测量事件总数为 ,按照发生顺序编号 。求出所有测量事件的结果。

实现细节

这是一道函数式交互题。你不必,也不应实现 main 函数。

你应当实现以下的函数:

vector<long long> tower_events(vector<int> H, vector<vector<int>> E)
  • :大小为 的整数数组。
  • :大小为 的整数数组,表示事件。
  • 返回一个大小为 的整数数组 ,其中 表示第 个测量事件的结果。
  • 该函数被调用恰好一次。

输入格式

示例评分程序的输入格式如下:

  • 行:
  • 行:
  • 对于所有
    • 行:

输出格式

示例评分程序按以下格式输出答案:

  • 对于所有
    • 行:

样例

样例输入 1

5 5
1 2 3 4 5
1 0
2 1 3
3 1 2 1
1 1
2 0 4

样例输出 1

3
6

样例输入 2

10 11
7 7 9 5 8 10 2 9 2 2
1 1
3 6 8 6
1 1
2 1 9
1 3
1 8
2 2 4
1 5
3 1 1 7
1 1
2 0 9

样例输出 2

5
3
10

数据范围与提示

数据范围

  • 对于瞭望事件,
  • 对于测量事件,
  • 对于平移事件,
  • 在平移事件发生后,保证
  • 至少有一个测量事件。

子任务

编号 得分 限制
;在所有测量事件中,
;无平移事件
在所有瞭望事件中,;在所有平移事件中,;平移事件至多发生
在所有测量事件中,;在所有平移事件中,
无额外限制

样例

样例

考虑以下调用:

tower_events([1, 2, 3, 4, 5], [[0], [1, 3], [1, 2, 1], [1], [0, 4]])
  • 在第一个事件之后,
  • 第二个事件(即测量事件 )的结果为
  • 在第三个事件之后,
  • 在第四个事件之后,
  • 最后一个事件(即测量事件 )的结果为

因此,该函数应返回

样例

考虑以下调用:

tower_events([7, 7, 9, 5, 8, 10, 2, 9, 2, 2], [[1], [6, 8, 6], [1], [1, 9], [3], [8], [2, 4], [5], [1, 1, 7], [1], [0, 9]])

该函数应返回