O(n^4)朴素算法吸氧过掉,请求加强数据!
查看原帖
O(n^4)朴素算法吸氧过掉,请求加强数据!
767459
herobrineqlh楼主2023/5/2 12:33
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
#define int long long
const int N=410;
int f[N][N];
int n;
int res;
signed main()
{
	scanf("%lld",&n);
	for(int i=0;i<=n+1;i++)
	{
		for(int j=0;j<=n+1;j++)f[i][j]=-1;
	}
	for(int i=1;i<=n;i++)scanf("%lld",&f[i][i]),res=max(res,f[i][i]);
	for(int len=2;len<=n;len++)
	{
		for(int l=1;l+len-1<=n;l++)
		{
			int r=l+len-1;
			for(int k=l;k<r;k++)
			{
				if(f[l][k]==f[k+1][r]&&f[l][k]!=-1)f[l][r]=max(f[l][r],f[l][k]+f[k+1][r]);
				for(int t=k+1;t<r;t++)
				{
					if(f[l][k]==f[t+1][r]&&f[l][k]!=-1&&f[k+1][t]!=-1)
					{
						f[l][r]=max(f[l][r],f[l][k]+f[k+1][t]+f[t+1][r]);
						break;
					}
				}
			}
			res=max(res,f[l][r]);
		}
	}
	printf("%lld\n",res);
	return 0;
}
2023/5/2 12:33
加载中...