题目描述
小T开办了一家机器工厂,在N(N<=10000)个星期内,原材料成本和劳动力价格不断起伏,第i周生产一台机器需要花费Ci(1<=Ci<=5000)元。若没把机器卖出去,每保养一台机器,每周需要花费S(1<=S<=100)元,这个费用不会发生变化。
机器工厂接到订单,在第i周需要交付Yi(0<=Yi<=10^4)台机器给委托人,第i周刚生产的机器,或者之前的存货,都可以进行交付。
请你计算出这n周时间内完成订单的最小代价。
输入输出格式
输入格式:
第一行输入两个整数N和S,接下来N行输入Ci和Yi
输出格式:
输出一个整数,表示最少的代价
输入输出样例
输入样例#1:
4 5
88 200
89 400
97 300
91 500
输出样例#1:
126900
#include<cstdio>
long long ans,money,num,f,N,S;
int main(){
scanf("%lld%lld",&N,&S);
scanf("%lld%lld",&money,&num);//先把第一个单独做了
ans+=money*num;//直接生产
f=money;//f是存最小数的变量,可自动理解为min
for(int i=2;i<=N;i++){
scanf("%lld%lld",&money,&num);
if(f+S<money)f=f+S;//判断f+S是否比当前值小,如果小,就不变,加一个S
维修费
else f=money;//如果大就用当前值做
ans+=f*num;
}
printf("%lld\n",ans);
return 0;
}
/*
4 5
88 200
89 400
97 300
91 500
*/
做了BFS有关习题,感觉脑容量不够了,下午再做吧,先这样