poj2393

题意:有n周,第i周:需要向外供货yi,生产1单位成本ci。若非本周生产的货物不在本周销售,需要贮藏,1单位贮藏一周需要花费s。问n周供货供需花费多少钱(成本和贮藏费)。

分析:贪心,我们用mini记录当前的最小单价,然后以最小单价买入,这个最小单价,要么是现在的单价,要么是之前的最小单价+贮藏费。mini中被替换掉的值是不可能是以后的最小单价的。因为现在被替换,同时+上若干个s之后它还是会比现在替换它的那个值大。

View Code
#include <iostream>
#include
<cstdio>
#include
<cstdlib>
#include
<cstring>
usingnamespace std;

int n, s;

int main()
{
//freopen("t.txt", "r", stdin);
scanf("%d%d", &n, &s);
int mini =1000000000;
longlong ans =0;
for (int i =0; i < n; i++)
{
int c, y;
scanf(
"%d%d", &c, &y);
if (mini > c)
mini
= c;
ans
+= ((longlong) (mini)) * y;
mini
+= s;
}
printf(
"%lld\n", ans);
return0;
}
原文地址:https://www.cnblogs.com/rainydays/p/2059098.html