社区讨论

翻译

CF115ELinear Kingdom Races参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mi6v5xup
此快照首次捕获于
2025/11/20 11:20
4 个月前
此快照最后确认于
2025/11/20 11:20
4 个月前
查看原帖

题目描述

你是一个赛车比赛的组织者,想在线性王国中安排一些比赛。
线性王国有n条连续的从左到右的道路。道路从左到右依次编号为从1到n,因此道路按照升序排列。在这些道路上可能会有几场比赛,每一场比赛都将使用这些道路的某个连续的子序列。而且,如果某场比赛举行了,你将获得一定数额的金钱。没有比赛在时间上重叠,所以每一段道路可以在多个比赛中使用。
不幸的是,所有道路的状况都不佳,需要修理。每条路都有与之相关的维修费用,你需要支付这笔费用来修理道路。只有在某场比赛中需要使用的所有道路都进行了修复,才能进行比赛。你的任务是修复道路并使你的利润最大化。你的利润被定义为你从比赛中获得的总金额减去你花在修理道路上的钱。请注意,您可以决定不修任何道路,并获得利润0。
输出你能获得的最大利润。

输入输出格式

输入格式:

第一行包括两个整数n和m(1n,m2105)(1 \leq n,m \leq 2\cdot 10^5),分别表示道路的数量和比赛的数量。
接下来n行,每行一个整数,表示这条道路修复需要的代价。
再接下来m行,每行包括三个整数lb,ub,p(1lb,ubn,1p109)l_b,u_b,p(1 \leq l_b,u_b \leq n,1 \leq p \leq 10^9),表示第b场比赛需要使用道路lb,ubl_b,u_b,你会获得收益p。

输出格式:

输出一个整数,表示你能获得的最大利润。
P.S.请不要使用%lld在C++中读写64位整数。推荐使用cin和cout流(也可以使用%I64d)。

说明

在第一个样例中,最优解是修复1、2、3和7。你将会在第1、2、4三场比赛中获得15的收益。道路修理费用是11,因此你的利润是4。

回复

2 条回复,欢迎继续交流。

正在加载回复...