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

📄 梁淘-5.5.txt

📁 这是很不错的计算机算法
💻 TXT
字号:
#include <iostream.h>
#include <math.h>
#include <fstream.h>

int merge(int *,int,int **);//计算对矩阵特征值的最大贡献的算法函数
int max(int,int,int);//求三个数中的最大值的函数
	
void main( )
{
/*从文件中读出数据*/
	int nn;
	int *pp;
	ifstream  fopen("input.txt");
	if (! fopen)
	{
		cout<<"无法打开INPUT.TXT文件"<<'\n';
		return;
	}
	fopen>>nn;

	if ((pp=new int[nn+1])==NULL){
		cout<<"无法提供更多的内存空间"<<'\n';
		return;
	}

	for (int i1=0;i1<=nn;i1++) fopen>>pp[i1];
	fopen.close();

	int **mm;
    mm=new int* [nn+1];
	for (int i2=0;i2<=nn;i2++)
	{
		if (!(mm[i2] = new int[nn+1]))
		{ 
			cout<<"无法提供更多的内存空间"<<endl;
			return ;
		}
	}

	int mmm=merge(pp,nn,mm);

/*数据写入文件*/
	ofstream outf("output.txt");
	if (! outf)
	{
		cout<<"数据无法写入output.TXT文件"<<'\n';
		return;
	}
    outf<<mmm<<'\n';
	outf.close();
	delete[] pp;
	delete[] *mm;
	return ;

}

//计算对矩阵特征值的最大贡献
int merge(int *p,int n,int **m)
{
	for (int i=1;i<=n;i++) m[i][i]=0;
	for (int r=2;r<=n;r++)
		for (int i=1;i<=n-r+1;i++){
			int j=i+r-1;
			m[i][j]=m[i+1][j]+3*max(p[i-1],p[i],p[j])-p[i-1]-p[i]-p[j];
			for (int k=i+1;k<j;k++){
				int t=m[i][k]+m[k+1][j]+3*max(p[i-1],p[k],p[j])-p[i-1]-p[k]-p[j];
				if (t>m[i][j]) m[i][j]=t;
			}
		}
return m[1][n];
}

//求三个数中的最大值
int max(int a,int b,int c)
{
	int m=a;
	if (m<b) m=b;
	if (m<c) m=c;
	return m;
}


⌨️ 快捷键说明

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