guihua.cpp

来自「算法设计分析」· C++ 代码 · 共 49 行

CPP
49
字号

#include "iostream.h"
void main()
{
	int i,j,k,m,n,rest,a[100][100],gain[100];
	float q[100],f[100],temp[100];
	cout<<"how many item?  ";
	cin>>m;
	cout<<"how many money?  ";
	cin>>n;
	cout<<"input one item gain table: ";
	for(j=1;j<=n;j++)
		{
			cin>>q[j];
			f[j]=q[j];
		}
	for(j=0;j<=n;j++)
		a[1][j]=j;
	for(k=2;k<=m;k++)
		{
			cout<<"input another item table: ";
			for(j=1;j<=n;j++)
				{
					temp[j]=q[j];
					cin>>q[j];
					a[k][j]=0;
				}
			for(j=0;j<=n;j++)
				for(i=0;i<=j;i++)
					if(f[j-i]+q[i]>temp[j])
						{
							temp[j]=f[j-i]+q[i];
							a[k][j]=i;
						}
					for(j=0;j<=n;j++)
						f[j]=temp[j];
		}
	rest=n;
	for(i=m;i>=1;i--)
		{
			gain[i]=a[i][rest];
			rest=rest-gain[i];
		}
	for(i=1;i<=m;i++)
		cout<<"项目"<<i<<"使用资源"<<gain[i]<<endl;
		cout<<"获得最大利润:"<<f[n]<<endl;
}

⌨️ 快捷键说明

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