Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
38602 hi_hi 【J】T3 C++ 解答错误 54 20 MS 1028 KB 1119 2025-10-18 13:24:14

Tests(28/51):


#include<bits/stdc++.h> using namespace std; long long _,n,dp[305][305]; string s; inline long long dfs(long long l,long long r,long long op){ if(l>r)return 1; if(l==r){ return op; } if(dp[l][r]!=0 && op!=1)return dp[l][r]; if(l==r-1){ if(s[l]==s[r])dp[l][r]=1; else dp[l][r]=-1; return dp[l][r]; } if(s[l]==s[r]){ dp[l][r]=dfs(l+1,r-1,1); //return dp[l][r]; } for(int i=l;i<=r-1;i++){ if(dfs(l,i,-1)==1 && dfs(i+1,r,-1)==1){ dp[l][r]=1; break; } if(op==1){ if(dfs(l,i-1,-1)==1 && dfs(i+1,r,-1)==1){ dp[l][r]=1; break; } } } if(dp[l][r]==0){ dp[l][r]=-1; } return dp[l][r]; } int main(){ scanf("%lld",&_); while(_--){ scanf("%lld\n",&n); cin>>s; s=" "+s; memset(dp,0,sizeof(dp)); dp[1][n]=dfs(1,n,-1); if(dp[1][n]==1){ printf("YES\n"); } else printf("NO\n"); } }


测评信息: