1 条题解
-
0
解题思路
这个问题类似于动态规划中的“生产调度”问题。我们需要决定每周生产多少酸奶,以及是否存储部分酸奶以供未来使用,以最小化总成本。
关键点:
1、生产与存储的权衡:如果当前周的生产成本较低,可以多生产并存储供未来使用;否则,尽量少生产,利用之前存储的酸奶。
2、动态规划:可以维护一个变量表示当前的最优生产成本,逐步更新每周的最小成本。
算法步骤:
1、初始化:第一周必须生产 单位酸奶,成本为 。
2、遍历每周:对于第 周,比较当前周的生产成本与前几周的生产成本加上存储费用:
如果前几周的生产成本加上存储费用低于当前周的生产成本,则选择前几周生产并存储。
否则,当前周生产。
3、更新最优成本:维护一个变量表示当前的最小生产成本,逐步更新。
优化:
1、可以维护一个“当前最优生产成本”变量,表示在当前周生产一单位酸奶的最小成本(包括存储费用)。
2、对于每周的需求 ,如果当前最优生产成本低于 ,则用最优成本生产;否则,用 生产并更新最优成本。
#include <iostream> #include <stdio.h> #include <limits.h> using namespace std; int main() { int n, s, c, y; while(~scanf("%d%d", &n, &s)) { int minc = 10000; long long sum = 0; while(n--) { scanf("%d%d", &c, &y); minc = min(minc + s, c); sum += minc * y; } printf("%lld\n", sum); } return 0; }
- 1
信息
- ID
- 1394
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者