Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
38663 daimo 【J】T3 C++ 通过 100 10 MS 1016 KB 1209 2025-10-18 15:30:02

Tests(51/51):


#include<bits/stdc++.h> #define int long long #define __ __int128 using namespace std; void testread(){ freopen("test.in","r",stdin); freopen("test.out","w",stdout); } int n; char s[310]; int f[310][310]; signed main(){ //testread(); ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); int _; cin>>_; //_=1; while(_--){ cin>>n; for(int i=1;i<=n;i++)cin>>s[i]; memset(f,0,sizeof(f)); for(int i=2;i<=n;i++){ for(int j=1;j+i-1<=n;j++){ int l=j,r=j+i-1; for(int k=l;k<r;k++){ f[l][r]=max(f[l][r],f[l][k]&f[k+1][r]); } if(s[l]==s[r]){ if(i<=3){ f[l][r]=1; continue; } f[l][r]=max(f[l][r],f[l+1][r-1]); f[l][r]=max(f[l][r],f[l+2][r-1]); f[l][r]=max(f[l][r],f[l+1][r-2]); for(int k=l+2;k<=r-2;k++){ f[l][r]=max(f[l][r],(f[l+1][k-1]&f[k+1][r-1])); } } } } if(f[1][n])cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }


测评信息: