Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
38672 沈仲恩 【J】T3 C++ 解答错误 49 4 MS 344 KB 1199 2025-10-18 15:40:41

Tests(25/51):


#include <bits/stdc++.h> #define ctr(x) if (x){f[l][r]=1;continue;} #define ctb(x) if (x){f[l][r]=1;break;} using namespace std; bool f[305][305]; int n; char s[305]; signed main() { int _; scanf("%d", &_); while (_--) { scanf("%d", &n); scanf("%s", s + 1); for (int i = 1; i <= n; i++) f[i][i - 1] = 1; for (int len = 2; len <= n; len++) { for (int l = 1, r = len; r <= n; l++, r++) { f[l][r] = 0; if (s[l] == s[r]) { ctr(f[l + 1][r - 1]); if (len >= 3) { ctr(f[l + 1][r - 2]); ctr(f[l + 2][r - 1]); } } for (int k = l + 1; k <= r - 2; k++) { ctb(f[l][k] && f[k + 1][r]); if (s[l] == s[r]) ctb(f[l + 1][k - 1] && f[k + 1][r]); } } } if (f[1][n]) puts("YES"); else puts("NO"); } return 0; }


测评信息: