社区讨论

求助WA,dalao帮忙看看这个暴力哪里错了

P2679[NOIP 2015 提高组] 子串参与者 1已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mi6z7ac7
此快照首次捕获于
2025/11/20 13:13
4 个月前
此快照最后确认于
2025/11/20 13:13
4 个月前
查看原帖
代码:
CPP
#include<iostream>
#include<cstdio>
using namespace std;
const int mod = 1e9 + 7;
const int maxL_a = 1005;
const int maxL_b = 205;
const int maxk = 205;

char a[maxL_a], b[maxL_b];
int n, m, k, dp[maxL_a][maxL_b][maxk][2];
int main() {
    scanf("%d%d%d", &n, &m, &k);
    scanf("%s%s", a + 1, b + 1);
    dp[0][0][0][0] = dp[0][0][0][1] = 1;
    for(int i = 1;i <= n;i++) {
        for(int j = 1;j <= m;j++) {
            for(int p = 1;p <= k;p++) {
                dp[i][j][p][0] = dp[i - 1][j][p][0] + dp[i - 1][j][p][1];
                if(a[i] == b[j]) {
                    dp[i][j][p][1] += dp[i - 1][j - 1][p][1];
                    dp[i][j][p][1] += dp[i - 1][j - 1][p - 1][0];
                    dp[i][j][p][1] += dp[i - 1][j - 1][p - 1][1];
                } else {
                    dp[i][j][p][1] = 0;
                }
            }
        }
    }
    printf("%d\n", dp[n][m][k][0] + dp[n][m][k][1]);
    return 0;
}
先不谈取模的问题,就是简单的暴力,请大佬们看看是哪里出了问题,拜托了。

回复

1 条回复,欢迎继续交流。

正在加载回复...