#SLT07C. 2026年S组模拟赛10连测第7场-T3 程老师的磨坊

2026年S组模拟赛10连测第7场-T3 程老师的磨坊

项目 内容
输入文件名 mill.in
输出文件名 mill.out
可执行文件名 mill
每个测试点时限 1.0 秒
内存限制 512 MiB
测试点数目 20
是否等分 是

结果比较方式为全文比较(过滤行末空格及文末换行)。

题目描述

程老师的磨坊里有一台老式磨面机,机器连续运转会逐渐磨损。程老师要为接下来 nn 天安排这台机器的运行计划,每天从两项里恰好选一项:让机器工作,或者给它做一次检修;两项都不安排的日子不存在。

机器工作当天的产出取决于它已经连续工作了多久。如果当天是这台机器连续工作的第 dd 天(d≥1d \ge 1,即上一次检修之后的第 dd 个工作日),那么当天的产出为 max⁡(0, v−(d−1) r)\max(0,\ v-(d-1)\,r),其中 vv 与 rr 是这台机器的两个固有参数。

被安排检修的那一天,机器的产出为 00;并且从第二天起,机器连续工作的天数重新从 11 计起。

磨坊这个月的订单已经排定,程老师要按上面的规矩给出这 nn 天的运行计划,使这 nn 天的总产出最大。请算出这个最大的总产出。

输入格式

从文件 mill.in 中读入数据。

输入一行三个整数 n,v,rn, v, r,依次表示排班的总天数、机器参数 vv 与机器参数 rr。

输出格式

输出到文件 mill.out 中。

输出一行一个整数,表示这 nn 天总产出的最大值。

样例

5 10 3
34

样例 1 解释

若五天全不检修,依次产出 10,7,4,1,010, 7, 4, 1, 0,总计 2222;若只在第三天检修,依次产出 10,7,0,10,710, 7, 0, 10, 7,总计 3434;若把检修安排得更密,例如第三、第五天都检修,依次产出 10,7,0,10,010, 7, 0, 10, 0,总计只有 2727。逐一比较各种安排后,3434 是最大的总产出。

3 5 10
10

样例 2 解释

若三天都不检修,依次产出 5,0,05, 0, 0,总计 55;若第一天检修,后两天工作,依次产出 0,5,00, 5, 0,总计 55;若第二天检修,第一、三天工作,依次产出 5,0,55, 0, 5,总计 1010。

数据范围

对于所有测试数据,保证:

  • 1≤n≤1051 \le n \le 10^5;
  • 1≤v≤3001 \le v \le 300;
  • 1≤r≤3001 \le r \le 300。

各测试点的约束如下(表中只列出 nn 的上界,vv 与 rr 仅受上述全局约束限制):

测试点 nn 特殊性质
1∼21 \sim 2 ≤10\le 10 无
3∼63 \sim 6 ≤50\le 50
7∼107 \sim 10 ≤500\le 500
11∼1411 \sim 14 ≤2000\le 2000
15∼1815 \sim 18 ≤105\le 10^5
1919 A
2020 B

特殊性质 A:r≥vr \ge v。

特殊性质 B:r=1r = 1 且 v=300v = 300。

难度 未评定
通过率 —
尝试 0
通过 0
ID
3795
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者