WA 求助
查看原帖
WA 求助
234074
樱雪喵>w<楼主2022/10/18 20:07

RT,在 YbtOJ 上过了,到洛谷来交一直 WA。求助大佬/kel

#include<bits/stdc++.h>
using namespace std;
const int N=205;
int T,n,a[N];
int tot,awa,col[N],len[N];
int f[N][N][N]; 
int main()
{
	scanf("%d",&T);
	while(T--)
	{
		memset(f,0,sizeof(f));tot=0;
		scanf("%d",&n);
		for(int i=1;i<=n;i++) scanf("%d",&a[i]); 
		for(int i=1;i<=n;i++)
		{
			int now=i;
			while(a[now]==a[i]&&now<=n) now++;
			col[++tot]=a[i],len[tot]=now-i;
			i=now-1;
		}
		//for(int i=1;i<=tot;i++) cout<<len[i]<<" "<<col[i]<<endl;
		for(int ln=1;ln<=tot;ln++)
		{
			for(int i=1;i<=tot-ln+1;i++)
			{
				int j=i+ln-1;
				for(int k=0;k<=tot;k++)
				{
					if(i==j) {f[i][j][k]=(len[i]+k)*(len[i]+k);continue;}
					f[i][j][k]=f[i][j-1][0]+(len[j]+k)*(len[j]+k);
					for(int l=i;l<j;l++)
					{
						if(col[l]==col[j])
						f[i][j][k]=max(f[i][j][k],f[i][l][k+len[j]]+f[l+1][j-1][0]);
					}
				}
			}
		}
		cout<<"Case "<<(++awa)<<": "<<f[1][tot][0];
		if(T) cout<<endl; 
	}
	return 0;
}
//qwq
2022/10/18 20:07
加载中...