http://poj.org/problem?id=2393
题意:任务规定,一个酸奶制造厂,在n个星期内,分别要向外提供y[i]unit的酸奶。已知这个制造厂第i周制造每unit酸奶的费用为c[i],储存室储存每1unit酸奶1星期的费用为s。问要完成这个任务的最小费用是多少。
.
.
.
.
.
.
.
.
.
.
.
.
.
思路:简单贪心。维护一个目前最优的代价minc = min(c, minc + s),然后求和。
#include <iostream> using namespace std; int main(int argc, char *argv[]) { int N, S; cin >> N >> S; int P = 5000; long long costs = 0; for (int i = 0; i < N; ++i) { int C, Y; cin >> C >> Y; P = min(P + S, C); costs += P * Y; } cout << costs << endl; return 0; }
原文:http://blog.csdn.net/acm_10000h/article/details/41018171