UKE
查看原帖
UKE
167689
TerryGong楼主2022/10/20 17:38

RT\mathrm{RT},蒟蒻的提交得到了 UKE\operatorname{UKE} 的结果,求教。

#include <cstdio>
using namespace std;
#define N 32
#define int long long
int f[N][N];
signed n,rt[N][N];
inline bool isdigit(char x){return (x>='0'&&x<='9');}
inline int read(){
	int x=0,flag=1;char c=getchar();
	while(!isdigit(c)){if(c=='-')flag=-1;c=getchar();}
	while(isdigit(c)){x=(x<<3)+(x<<1)+c-'0';c=getchar();}
	return flag*x;
}
void print(int l,int r){
	if(l>r)return;
	printf("%lld ",rt[l][r]);
	if(l==r)return;
	print(l,rt[l][r-1]);
	print(rt[l][r]+1,r);
}
signed main(){
	n=read();
	for(int i=1;i<=n;i++)f[i][i]=read(),rt[i][i]=i,f[i][i-1]=1;
	for(int l=1;l<n;l++)
		for(int i=1;i+l<=n;i++){
			int j=i+l;
			f[i][j]=f[i+1][j]+f[i][i];
			rt[i][j]=i;
			for(int k=i+1;k<j;k++)
				if(f[i][j]<f[i][k-1]*f[k+1][j]+f[k][k]){
					f[i][j]=f[i][k-1]*f[k+1][j]+f[k][k];
					rt[i][j]=k;
				}
		}
	printf("%lld\n",f[1][n]);
	print(1,n);
	return 0;
}

普通区间动规做法,根据评测信息猜测为 SPJ\mathrm{SPJ} 代码 RE/MLE\operatorname{RE/MLE},求大佬解释,谢谢!

2022/10/20 17:38
加载中...