接下来的N(1≤N10000)星期中,奶酪工厂在第i个星期要花C_i分来生产一个单位的奶酪。约克奶酪工厂拥有一个
无限大的仓库,每个星期生产的多余的奶酪都会放在这里。而且每个星期存放一个单位的奶酪要花费S分。工厂最
近收到了客戶N个星期的订单,第i个星期要向客戶提供Y_i 个单位的奶酪。当然这些奶酪可以在第i个星期时生产
,也可以从仓库中拿取。采用怎样的生产策略约克奶酪工厂的花费最小呢?
Input
第一行两个整数:N和S;接下来的N行中,第i行的两个数表示:C_i和Y_i。
Output
仅一行,即工厂生产的最小花费
Sample Input
4 5
88 200
89 400
97 300
91 500
Sample Output
126900
Sol:对于第i个月来说,要么当月生产。要么使用前面某个月,设为k,生产下来的
则对于第i+1个月来说要么当月生产要么使用前面某个月,则这个值仍等于前面的k,注意结果要用long long 保存
#include<cstdio> int n,s,c,a; long long now=10000000,ans=0; int main() { scanf("%d%d",&n,&s);//n个月,保管费用为s for (int i=1;i<=n;i++) { scanf("%d%d",&c,&a);//当月的成本为c,需求量为a if (now>c) //如果从[1,i-1]这一段某个月生产的成本高于本月的 now=c;//本月自己生产奶酪 ans+=now*a; now+=s;//累加储存成本 } printf("%lld",ans); return 0; }
原文地址:https://www.cnblogs.com/cutemush/p/11679365.html
时间: 2024-11-06 20:20:27