记录编号 |
602736 |
评测结果 |
AAAAAAAAAA |
题目名称 |
2034.[Tyvj]方块消除 |
最终得分 |
100 |
用户昵称 |
小福鑫 |
是否通过 |
通过 |
代码语言 |
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];
}