记录编号 616609 评测结果 AAAAAAAATT
题目名称 最终得分 80
用户昵称 GravatarRpUtl 是否通过 未通过
代码语言 C++ 运行时间 4.328 s
提交时间 2026-06-29 15:33:26 内存使用 20.69 MiB
显示代码纯文本
    #include <bits/stdc++.h>
    using namespace std;
    const int N = 505;
    int n, mod, dp[N][N][N], ans; 
    int main(){
        freopen("great.in", "r", stdin);
        freopen("great.out", "w", stdout);
        cin >> n >> mod;
        dp[0][0][0] = 1;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j <= i; j++) {
                for (int k = 0; k <= i; k++) {
                    if (!dp[i][j][k]) continue;
                    for (int l = 1; l <= i + 1; l++) {
                        if (l <= k) continue;
                        if (l == i + 1) {
                            (dp[i + 1][j][k] += dp[i][j][k]) %= mod;
                        } else {
                            if (l <= j) {
                                (dp[i + 1][j + 1][l] += dp[i][j][k]) %= mod;
                            } else {
                                (dp[i + 1][l][k] += dp[i][j][k]) %= mod;
                            }
                        }
                    }
                }
            }
        }
        for (int j = 0; j <= n; j++) {
            for (int k = 0; k <= n; k++) {
                (ans += dp[n][j][k]) %= mod;
            }
        }
        cout << ans << '\n';
        return 0;
    }