总觉得贪心的时候总是有什么想不清楚,总是贪不对。
大致题意:给两个数,n,m,n个星期,东西每存一个星期,需要m,每个星期的价格和销售量是不一样的,问最少需要多少成本。
方法:用一个数来记录当目前为止在那个星期制造最好,如果这个星期的成本比之前的成本要多,就用前面的,二之前的成本也要相应的加上m,因为又过了一个星期。
不然的话,就是当前的点为以后的有可能最合适点。
比如 88 200
89 400
99 300(m = 5)
这种情况,第三个点不是在1这点的时候制造,最合适,而是在2这个点的时候最合适,为什么呢,因为在刚刚求2的时候,发现在1制造不如在2的时候实惠,所以后面相应 的也应该是在2的时候
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define inf 1000000
using namespace std;
int n, m;
int main(){
int a, b, i;
while(scanf("%d%d", &n, &m) == 2){
int minc = inf;
__int64 ans = 0;
for(i = 1; i <= n; i++){
scanf("%d%d", &a, &b);
if(m+minc < a) a = m+minc;
minc = a;
ans += a * b;
}
printf("%I64d\n", ans);
}
return 0;
}