Yogurt factory(POJ 2393, 贪心)

题目链接

      这个题就比较简单了,算是我做的最快的几个题之一了,不过还是WA了一次,因为看到“Note that the total might be too large for a 32-bit integer.”后,我果断使用了long类型而忘了long也是32位,还好我很快就反应过来了,不然又要浪费时间去检查代码了。

/*i周的per unit of yogurt的最低成本为b[i]
最低cost即求和b[i]*Y[i]  
	递推可得b[i]的值 
	b[0] = c[0];
	b[i] = min(b[i-1]+S, c[i]);
*/
#include<cstdio>
#include<algorithm>

using namespace std;

const int MAX_N = 10005;
long long ans;
int N, S, C[MAX_N], Y[MAX_N], b[MAX_N];

void ini()
{
	for(int i=0; i<N; i++) 
		scanf("%d%d", &C[i], &Y[i]);
	ans = C[0] * Y[0];
}
void f()
{
	b[0] = C[0];
	for(int i=1; i<N; i++){
		b[i] = min(b[i-1]+S, C[i]);
		ans += b[i] * Y[i];
	}
}
int main()
{
	while(~scanf("%d%d", &N, &S)){
		ini();
		f();
		printf("%lld", ans);
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值