#1712. 资源分配
资源分配
题目描述:
某单位需对编号为 1, 2, 3, ..., n 的 n 个连续资源节点进行分配管理,每个资源节点最多只能分配 1 个资源(即每个节点仅有 “分配” 或 “不分配” 两种状态)。为满足实际使用需求,各部门共提出 h 组分配建议,每组建议包含三个整数 x, y, z,含义为:在编号从 x 到 y(包含 x 和 y,即闭区间 [x, y])的资源节点中,至少需要分配 z 个资源。需注意,不同建议涉及的节点区间可能存在重叠(例如建议 1 的 [1,4] 与建议 4 的 [3,5] 有交集)。 由于资源采购与维护存在成本,单位希望在满足所有部门建议的前提下,尽可能减少资源总分配数量,以降低整体投入。现需计算:满足所有建议时,最少需要分配的资源总数。
输入格式:
从文件 resource.in 中读取数据: 第 1 行:1 个正整数 n,代表资源节点的总数量。 第 2 行:1 个正整数 h,代表部门建议的总组数。 第 3 行至第 h+2 行:每行包含 3 个正整数 x, y, z,分别对应 1 组建议的 “起始节点、结束节点、最少分配数量”。
输出格式:
输出到文件 resource. out 中。 输出共一行,1 个正整数,代表满足所有建议所需的最少资源分配数量。
样例:
9
4
1 4 2
4 6 2
8 9 2
3 5 2
5
12
5
2 7 3
4 10 5
1 4 2
9 11 2
6 8 1
6
提示
【样例 1 解释】 通过合理规划(如在节点 3、4、5、8、9 分配资源),可同时满足所有 4 组建议,且仅需分配 5 个资源,为最少数量。 【样例 2 解释】 通过优化资源分配位置(如在节点 2、4、6、9、10、11 分配资源),可满足全部 5 组建议,且资源总分配数最少(6 个)。
数据范围
对于 30% 的数据,保证 n ≤ 1000,h≤ 500。 对于 100% 的数据,保证 n ≤ 310^4, h≤ 5000, x≤ y≤ 310^4,z≤y-x+1。
相关
在下列比赛中: