http://poj.org/problem?id=2393
一个酸奶制造厂,n个星期内,要提供y[i]单位的酸奶,第i周制造每单位酸奶的费用为c[i],储存室储存每单位酸奶1星期的费用为s。
求最低成本。
贪心。维护一个目前最优的代价c[i]=min(c[i-1]+s,c[i]),然后求和。
#include <iostream>
using namespace std;
int n,s;
int c[10005];
int y[10005];
long long ans=0;
int main(){
cin >> n >> s;
for (int i=0;i<n;i++){
cin >> c[i] >> y[i];
}
for (int i=1;i<n;i++){
c[i]=min(c[i-1]+s,c[i]);
}
for (int i=0;i<n;i++){
ans+=c[i]*y[i];
}
cout << ans << endl;
}