数据比样例还水
查看原帖
数据比样例还水
1064463
封禁用户楼主2024/4/15 09:57
#include<iostream>
#include<cstdio>
#include<cstring>
#define int long long 
using namespace std;
const int maxn=40;
int n,root[maxn][maxn];
int a[maxn],f[maxn][maxn];
void qian(int L,int R){
	if(R<L) return ;
	printf("%lld ",root[L][R]);
	qian(L,root[L][R]-1);
	qian(root[L][R]+1,R);
} 
signed main(){
	scanf("%lld",&n);
	for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
	for(int i=1;i<=n+1;i++) f[i][i]=a[i],f[i][i-1]=1,root[i][i]=i;
	for(int i=n-1;i>=1;i--){
		for(int j=i+1;j<=n;j++){
			for(int k=i;k<=j;k++){
				f[i][j]=max(f[i][k-1]*f[k+1][j]+a[k],f[i][j]);
				if(f[i][j]==f[i][k-1]*f[k+1][j]+a[k]) root[i][j]=k;
			}
		}
	}
	printf("%lld\n",f[1][n]);
	qian(1,n);	
	return 0;
}
}

样例WA,提交正确;

很明显,22 23行不对;

请求加强数据

2024/4/15 09:57
加载中...