难绷(求调)
  • 板块学术版
  • 楼主封禁用户
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/7/7 11:06
  • 上次更新2025/1/12 10:10:30
查看原帖
难绷(求调)
639563
封禁用户楼主2024/7/7 11:06

这是我某题的程序:

// 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 了(捂脸

但是,在本地……

有大佬能解释是为什么吗

2024/7/7 11:06
加载中...