这是我某题的程序:
// Problem: P7914 [CSP-S 2021] 括号序列
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P7914
// Memory Limit: 512 MB
// Time Limit: 1000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000007
// 0: S
// 1: A
// 2: ASAS
// 3: ASASA
// 4: SASA
// 5: SASAS
string s;
ll f[5005][5005][10];
int main() {
int n, m;
cin >> n >> m >> s;
for (int len = 1; len <= n; len++) {
for (int l = 0; l < (int)s.size(); l++) {
int r = l + len - 1;
bool flag = 1;
for (int i = l; i <= r; i++) {
flag &= (s[i] == '*' || s[i] == '?');
}
f[l][r][0] = flag && ((r - l + 1) <= m);
if ((s[l] == '(' || s[l] == '?') && (s[r] == ')' || s[r] == '?')) {
f[l][r][1] = (f[l + 1][r - 1][0] + f[l + 1][r - 1][2] + f[l + 1][r - 1][3] + f[l + 1][r - 1][4]) % mod;
}
for (int i = l; i <= r - 1; i++) {
f[l][r][2] = (f[l][r][2] + f[l][i][3] * f[i + 1][r][0]) % mod;
f[l][r][3] = (f[l][r][3] + f[l][i][2] * f[i + 1][r][1]) % mod;
f[l][r][4] = (f[l][r][4] + f[l][i][5] * f[i + 1][r][1]) % mod;
f[l][r][5] = (f[l][r][5] + f[l][i][4] * f[i + 1][r][0]) % mod;
}
}
}
cout << f[0][n - 1][3];
}
在洛谷上正常运行了,WA & TLE 了(捂脸
但是,在本地……
有大佬能解释是为什么吗