跳转至

限量补给的旅程

背景故事

一辆运输车沿直线驶向目的地,途中补给站各有单价和有限库存。调度员分别关心最省钱的计划和停车加油次数最少的计划。

(本故事由GPT-6重写)

形式化问题描述

从位置 \(0\) 出发,初始油箱为空,只能向前行驶到整数位置 \(L\) .每前进一单位距离消耗一单位燃料。油箱容量为 \(R\) ;若输入 \(R=-1\) ,容量不受限制。

有 \(N\) 个站点,站点 \(i\) 位于 \(x_i\) ,每单位燃料价格为 \(c_i\) ,总库存为 \(s_i\) .站点位置各不相同,输入次序任意。只能在站点购买整数单位的燃料,不能超过该站库存或油箱容量。在一个站点购买正数单位算一次加油,购买零单位不计次数。可以有剩余燃料到达终点。

分别求所有可行计划中的最低总费用和最少加油次数。这是两个独立目标,不要求同一计划同时取得二者。若无法到达,两个答案均为 \(-1\) .

输入格式

第一行 N L R .接下来 \(N\) 行,每行 x_i c_i s_i .

输出格式

第一行输出最低费用,第二行输出最少加油次数;不可达时两行均输出 −1。

样例 1

输入

2 4 4
0 5 4
2 1 4

输出

12
1

样例 2

输入

1 5 2
0 3 5

输出

-1
-1

样例 3

输入

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

输出

7
3

样例说明

样例 1 最低费用为 12,需要分两站各买 2 单位;最少加油次数为 1,可在起点一次买 4 单位。样例 2 的油箱无法支持无补给的五单位路程。样例 3 的站点输入无序,最低费用为 7,三站都必须加油。

样例 1 的两个目标由不同计划取得。

样例 1 的两个目标由不同计划取得。

数据范围与分组

\(1\le L\le2000\) ,\(0\le N\le L\) ,\(R=-1\) 或 \(1\le R\le L\) ;\(0\le x_i<L\) ,\(0\le c_i,s_i\le10^9\) .

规格由 Codex(GPT-6)重新设计:补齐输入输出、整数燃料与站点范围,明确初始空箱和两个独立优化目标。

分值 额外限制
20% \(L\le12\)
30% \(L\le200\)
50% 无额外限制

资源限制

时间 1 秒;内存 128 MiB。

时限取标准程序正式数据五次运行的最慢中位数的 16 倍,向上取整到 0.5 秒。采用较大倍数,以容纳具有不同用途的补充算法。

测量环境与方法 · 测量记录 · 题解