题意:
给出N个月,以及每吨产品每储存一个月需要的费用P,和每个月需要的产品数量X和当月生产成本Y。求满足需求的最小花费。
思路:
f[i]表示第i个月得到一吨产品所需的最小费用,递推式f[i]=min(f[i-1]+p,y)。
代码:
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cstdlib>
using namespace std;
int f[11000];
int mymin(int x,int y)
{
return x<y?x:y;
}
int main()
{
memset(f,63,sizeof(f));
int n,m,ans=0;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
int x,y;
scanf("%d%d",&x,&y);
f[i]=mymin(f[i-1]+m,x);
ans+=f[i]*y;
}
printf("%d\n",ans);
return 0;
}