Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
38626 申东铉 【J】T3 C++ 通过 100 9 MS 336 KB 868 2025-10-18 13:47:27

Tests(51/51):


#include <bits/stdc++.h> using namespace std; int T,n; string s; bool dp[302][302]; signed main () { ios::sync_with_stdio(); cin.tie(0); cout.tie(0); cin >> T; while (T--) { memset(dp,0,sizeof(dp)); cin >> n; cin >> s; s = ' ' + s; for (int i = 1;i <= n;i++) { dp[i][i - 1] = 1; } for (int i = 2;i <= n;i++) { for (int j = 1;j + i - 1 <= n;j++) { int l = j,r = j + i - 1; if (s[l] == s[r]) { dp[l][r] |= dp[l + 1][r - 1]; dp[l][r] |= dp[l + 2][r - 1]; dp[l][r] |= dp[l + 1][r - 2]; for (int k = l + 1;k < r;k++) { dp[l][r] |= (dp[l + 1][k - 1] & dp[k + 1][r - 1]); } } for (int k = l;k < r;k++) { dp[l][r] |= (dp[l][k] & dp[k + 1][r]); } } } if (dp[1][n]) { cout << "YES" << endl; } else { cout << "NO" << endl; } } return 0; }


测评信息: