[Usaco2005 mar]Yogurt factory 奶酪工厂

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-01 10:10:24


接下来的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;
}

  

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!