Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
38590 郭澍宇 【J】T3 C++ 通过 100 27 MS 432 KB 1585 2025-10-18 13:08:40

Tests(51/51):


#include<bits/stdc++.h> using namespace std; bool hw[305][305],del[305][305]; int t,n; string s; int main(){ //freopen("judge.in","r",stdin); //freopen("judge.out","w",stdout); scanf("%d",&t); while(t--){ scanf("%d",&n); cin>>s; s=" "+s; memset(hw,0,sizeof hw); memset(del,0,sizeof del); for(int i = 1;i<=n;i++) hw[i][i]=1; for(int i = 1;i<n;i++){ if(s[i]==s[i+1])hw[i][i+1]=1; } for(int l = 3;l<=n;l++){ for(int i = 1;i<=n;i++){ int j = l+i-1; if(j>n)break; if(s[i]==s[j])hw[i][j]=hw[i][j]||hw[i+1][j-1]; } } for(int i = 1;i<=n;i++) hw[i][i]=0; for(int l = 1;l<=n;l++){ for(int i = 1;i<=n;i++){ int j = i+l-1; //if(i==j)continue; del[i][j]=del[i][j]||hw[i][j]; if(s[i]==s[j]){ del[i][j]=del[i][j]||del[i+1][j-1]; for(int k = i+1;k<j-1;k++){ if(i+1==k) del[i][j]=del[i][j]||del[k+1][j-1]; if(k+1==j-1) del[i][j]=del[i][j]||del[i+1][k]; del[i][j]=del[i][j]||(del[i+1][k-1]&&del[k+1][j-1]); } } for(int k = i;k<j;k++){ del[i][j]=del[i][j]||(del[i][k]&&del[k+1][j]); } } } if(del[1][n])printf("YES\n"); else printf("NO\n"); } }


测评信息: