poj 2393 Yogurt factory

题意:一个酸奶公司有n周的生产计划,在第I周每生产一单位需要c_i成本,需要向客户交货y_i单位,公司有一个无穷大的仓库,并且酸奶可以存储任意时间不会腐化。没存一周一单位的酸奶需要s成本。问怎样安排生产与存储,使得n周的成本最小
网上的思路:总是使得当前周数生产成本最小,用for循环维护。
#include<cstdio>
#include<iostream>
#include<algorithm>
#define Min(a,b)  a<b?a:b
const int N = 10010;
int c[N],d[N];
int main()
{
	int n,s;
	long long ans=0;
	scanf("%d%d",&n,&s);
	for(int i=0;i<n;i++)
	scanf("%d%d",&c[i],&d[i]);
	for(int i=1;i<n;i++)
	c[i]=Min(c[i],c[i-1]+s);
	for(int i=0;i<n;i++)
	ans+=c[i]*d[i];
	printf("%lld",ans);
}
我的错误代码:不明白错在哪
#include<cstdio>
#include<iostream>
#include<algorithm>
#define Min(a,b)  a<b?a:b
using namespace std;
const int N = 10010; 
struct node
{
	int c;
	int d;
}data[N];
int main()
{
	int n,s;
	long long ans=0,min=0;
	scanf("%d%d",&n,&s);
	for(int i=0;i<n;i++)
	{
		scanf("%d%d",&data[i].c,&data[i].d);
	}
	ans+=data[0].c*data[0].d;
	for(int i=1;i<n;i++)//从第二周开始考虑 
	{
		min = data[i].c*data[i].d;
		for(int j=0;j<i;j++)
		{
			long long value=data[j].c*data[i].d+data[i].d*(i-j)*s;
			min=Min(min,value);
		}
		ans+=min;
	}
	printf("%lld",ans);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值