#lg6881. [JOI 2020 Final] 火灾
[JOI 2020 Final] 火灾
P6881 [JOI 2020 Final] 火灾 / Fire
题目背景
原题测试点配置信息:
Subtask 1 (1): 01-*, 02-*, sample-*
Subtask 2 (6): 01-*, 04-*, sample-04
Subtask 3 (7): 01-*, 05-*, sample-03
Subtask 4 (6): 06-*, sample-05
Subtask 5 (80): *
题目描述
给定一个长为 的序列 ,刚开始为时刻 。
定义 时刻第 个数为 ,那么:
$$\begin{cases} S_0(t)=0\\S_i(0)=S_i\\S_i(t)=\max\{S_{i-1}(t-1),S_i(t-1)\} \end{cases}$$你将对 个操作进行评估,第 个操作让时刻 时的区间 全部变为 。
执行一个操作需要一定的代价,执行第 个操作需要以下的代价:
求每个操作需要的代价。
注意:每个操作都是独立的。
输入格式
第一行两个整数 代表序列长度和操作数。
第二行 个整数 代表这个序列。
接下来 行每行三个整数 代表一个操作。
输出格式
行每行一个整数代表这个操作需要的代价。
输入输出样例 #1
输入 #1
5 5
9 3 2 6 5
1 1 3
2 1 5
3 2 5
4 3 3
5 3 5
输出 #1
21
39
33
9
27
输入输出样例 #2
输入 #2
10 10
3 1 4 1 5 9 2 6 5 3
1 1 6
2 8 10
4 2 7
8 3 3
6 1 10
3 2 8
5 1 9
7 4 5
9 7 9
10 10 10
输出 #2
28
21
34
4
64
43
55
9
27
9
输入输出样例 #3
输入 #3
10 10
3 1 4 1 5 9 2 6 5 3
1 6 6
2 8 8
4 2 2
8 3 3
6 1 1
3 4 4
5 5 5
7 10 10
9 8 8
10 7 7
输出 #3
9
9
3
4
3
4
5
9
9
9
输入输出样例 #4
输入 #4
10 10
3 1 4 1 5 9 2 6 5 3
7 1 6
7 8 10
7 2 7
7 3 3
7 1 10
7 2 8
7 1 9
7 4 5
7 7 9
7 10 10
输出 #4
28
27
34
4
64
43
55
9
27
9
输入输出样例 #5
输入 #5
20 20
2 1 2 2 1 1 1 1 2 2 2 1 2 1 1 2 1 2 1 1
1 1 14
2 3 18
4 10 15
8 2 17
9 20 20
4 8 19
7 2 20
11 1 5
13 2 8
20 1 20
2 12 15
7 1 14
12 7 18
14 2 17
9 19 20
12 12 12
6 2 15
11 2 15
19 12 17
4 1 20
输出 #5
25
30
12
32
2
24
38
10
14
40
8
28
24
32
4
2
28
28
12
40
说明/提示
样例 1 解释
- 。
- ,第一个操作需要的代价为 。
- ,第二个操作需要的代价为 。
- ,第三个操作需要的代价为 。
- ,第四个操作需要的代价为 。
- ,第五个操作需要的代价为 。
数据规模与约定
本题采用捆绑测试。
- Subtask 1(1 pts):。
- Subtask 2(6 pts): 互相相等。
- Subtask 3(7 pts):。
- Subtask 4(6 pts):。
- Subtask 5(80 pts):无特殊限制。
对于 的数据:
- 。
- 。
- 。
- 。
- 。
说明
翻译自 第19回日本情報オリンピック 本選 E 火事。
#3256. 「JOI 2020 Final」火灾
标签: 传统 | 时间限制: 1500 ms | 内存限制: 256 MiB |
题目描述
译自 JOI 2020 Final T5「火事 / Fire」
在 JOI 世界里有 个地区排成一条线。为了方便,我们将这些地区编号为 到 。突然,各个地区都起火了。在时刻 ,第 个区的火势大小为 。
此时(时刻 ),一阵风从 号地区一直吹到了 号地区,并且这阵风会一直持续。对于每两个相邻的地区,如果 时刻上风地区的火势比下风地区的强, 时刻下风地区的火势大小将变为 时刻上风地区的火势,否则 和 时刻时下风地区的火势大小不变。
形式化地说,如果 时刻 地区的火势为 ,则 ,其中 。
你是一位消防员。现在,你想到了 种灭火方案。你的第 种方案是在 时刻对 中的所有地区使用灭火剂完全扑灭火灾。
对于一个火势大小为 的城市,你将需要 升的灭火剂来扑灭火灾。因此,执行方案 总共要花费 升灭火剂。
译者注:英文版题面中没有定义 ,此处定义从日文版中提取。
为了更好地选取灭火方案,你的任务是编写一个程序,给出 时刻的火势大小,计算各个方案所需的灭火剂量。
输入格式
第一行两个数 ,含义如题面所示。
接下来一行 个数 ,表示初始时的火势大小。
接下来 行每行三个数 ,表示方案 的相关信息。
输出格式
输出 行,第 行表示方案 所需的灭火剂量。
样例 1
输入
5 5
9 3 2 6 5
1 1 3
2 1 5
3 2 5
4 3 3
5 3 5
输出
21
39
33
9
27
- 时刻 时地区 到 地区 的火势大小分别为 。
- 时刻 时地区 到 地区 的火势大小分别为 。方案 需要的灭火剂量为 升。
- 时刻 时地区 到 地区 的火势大小分别为 。方案 需要的灭火剂量为 升。
- 时刻 时地区 到 地区 的火势大小分别为 。方案 需要的灭火剂量为 升。
- 时刻 时地区 到 地区 的火势大小分别为 。方案 需要的灭火剂量为 升。
- 时刻 时地区 到 地区 的火势大小分别为 。方案 需要的灭火剂量为 升。
该样例满足子任务 和子任务 的限制。
样例 2
输入
10 10
3 1 4 1 5 9 2 6 5 3
1 1 6
2 8 10
4 2 7
8 3 3
6 1 10
3 2 8
5 1 9
7 4 5
9 7 9
10 10 10
输出
28
21
34
4
64
43
55
9
27
9
该样例满足子任务 和子任务 的限制。
样例 3
输入
10 10
3 1 4 1 5 9 2 6 5 3
1 6 6
2 8 8
4 2 2
8 3 3
6 1 1
3 4 4
5 5 5
7 10 10
9 8 8
10 7 7
输出
9
9
3
4
3
4
5
9
9
9
该样例满足子任务 的限制。
样例 4
输入
10 10
3 1 4 1 5 9 2 6 5 3
7 1 6
7 8 10
7 2 7
7 3 3
7 1 10
7 2 8
7 1 9
7 4 5
7 7 9
7 10 10
输出
28
27
34
4
64
43
55
9
27
9
该样例满足子任务 的限制。
样例 5
输入
20 20
2 1 2 2 1 1 1 1 2 2 2 1 2 1 1 2 1 2 1 1
1 1 14
2 3 18
4 10 15
8 2 17
9 20 20
4 8 19
7 2 20
11 1 5
13 2 8
20 1 20
2 12 15
7 1 14
12 7 18
14 2 17
9 19 20
12 12 12
6 2 15
11 2 15
19 12 17
4 1 20
输出
25
30
12
32
2
24
38
10
14
40
8
28
24
32
4
2
28
28
12
40
该样例满足子任务 的限制。
数据范围与提示
对于所有测试数据 $1\le N,Q\le 2\times 10^5,~1\le S_i\le 10^9,~1\le L_j,~R_j,~T_j\le N$。
| 子任务编号 | 分值 | 具体限制 |
|---|---|---|