记录编号 602736 评测结果 AAAAAAAAAA
题目名称 2034.[Tyvj]方块消除 最终得分 100
用户昵称 Gravatar小福鑫 是否通过 通过
代码语言 C++ 运行时间 1.456 s
提交时间 2025-07-05 16:07:11 内存使用 13.17 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int T,n,col[201],h[201],nxt[201],dp[201][201][201],cnt;
int dfs(int i,int j,int k){
	if(i>j){
		return 0;
	}
	if(dp[i][j][k]){
		return dp[i][j][k];
	}
	dp[i][j][k]=max(dp[i][j][k],dfs(i,j-1,0)+(k+1)*(k+1));
	for(int p=nxt[j];p>=i;p=nxt[p]){
		dp[i][j][k]=max(dp[i][j][k],dfs(i,p,k+1)+dfs(p+1,j-1,0));
	} 
	return dp[i][j][k];
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>col[i];
		nxt[i]=h[col[i]];
		h[col[i]]=i;
	}
	dfs(1,n,0);
	cout<<dp[1][n][0];	
}