⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shengchanjihua.cpp

📁 该程序用于解决生产计划问题
💻 CPP
字号:
#include<iostream.h>
int n,maxl=50,maxp=50,d[20],f[20][50],x[20][50],
    xstar[20],io=0;

int pc(int j)
{
	if(j==0)
		return 0;
	else
		return 20+5*j;

}

int eic(int j)
{
	return j;
}

int sum(int i)
{
	int sum=0;
	for(int j=i;j<=n;j++)
		sum+=d[j];
	return sum;
}

void main()
{
	int i,k,nei,nnei,z;
	cout<<"输入周期数"<<endl;
	cin>>n;
	cout<<"输入各周期的需求量"<<endl;
	for(i=1;i<=n;i++)
		cin>>d[i];
	for(k=0;k<=d[n];k++)
	{
		f[n][k]=pc(d[n]-k);
		x[n][k]=d[n]-k;
	}
	for(i=n-1;i>=1;i--)
	{
        int in=d[i];
		int min=(sum(i)<maxl)?sum(i):maxl;
		for(k=0;k<=min;k++)
		{
			int left=(0>(in-k))?0:(in-k);
			int temp=(maxp<(sum(i)-k))?maxp:(sum(i)-k);
			int right=(temp<(in+maxl-k))?temp:(in+maxl-k);
			f[i][k]=pc(left)+eic(k+left-in)+f[i+1][k+left-in];
			int d=left;
			for(z=left+1;z<=right;z++)
			{
				int na=pc(z)+eic(k+z-in)+f[i+1][k+z-in];
				if(na<f[i][k])
				{
					f[i][k]=na;
					d=z;
				}
			}
			x[i][k]=d;
		}
	}
	xstar[1]=x[1][io];
	nei=io;
	for(i=2;i<=n;i++)
	{
		nnei=xstar[i-1]-d[i-1]+nei;
		xstar[i]=x[i][nnei];
		nei=nnei;
	}
	cout<<"各阶段的生产量如下"<<endl;
    for(i=1;i<=n;i++)
		cout<<xstar[i]<<' ';
	cout<<endl;
	cout<<"最小费用为: "<<f[1][io]<<endl;	
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -