题意:一个工厂每周要提供不同数量单位的酸奶酪,每周生产单位酸奶酪的成本是不同的,你可以选择预先生产然后库存给以后的周,但是有额外的成本,告知一共要提供 N 周酸奶酪,库存每单位酸奶酪每周的代价是 S,告知每周的单位生产成本 C 和 每周需求 Y,问最小代价是多少。
思路:直接贪心
代码如下:
#include <stdio.h>
int c[10001], y[10001];
int main()
{
int N, S,i;
scanf("%d %d", &N, &S);
for(i = 0; i < N; ++i)
scanf("%d %d", &c[i], &y[i]);
__int64 total = c[0] * y[0];
for( i = 1; i < N; ++i)
{
if(c[i-1] + S > c[i])
total += c[i] * y[i];
else
total += (c[i-1] + S) * y[i];
}
printf("%I64d\n", total);
return 0;
}