记录编号 589307 评测结果 AAAAAAAAAA
题目名称 玩具 最终得分 100
用户昵称 GravatardarkMoon 是否通过 通过
代码语言 C++ 运行时间 0.562 s
提交时间 2024-07-04 17:38:18 内存使用 3.70 MiB
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
auto mread = [](){int x;scanf("%lld", &x);return x;};
int n = mread();
const int MOD = mread(), N = 205;
int f[N][N], inv[N];
int ksm(int x, int k){
    int ans = 1, now = x;
    while(k){
        if(k & 1)
        ans = ans * now % MOD;
        now = now * now % MOD;
        k >>= 1;
    }
    return ans;
}
signed main(){
    for(int i = 0; i <= n; i ++)
    f[0][i] = 1, inv[i] = ksm(i, MOD - 2);
    for(int i = 1; i <= n; i ++){
        for(int j = 1; j <= n; j ++){
            for(int k = 1; k <= i; k ++){
                (f[i][j] += (f[k - 1][j - 1] * inv[i] % MOD * f[i - k][j] % MOD)) %= MOD;
            }
            // printf("*** %lld %lld %lld\n", i, j, f[i][j]);
        }
    }
    int ans = 0;
    for(int i = 2; i <= n + 1; i ++){
        (ans += (f[n - 1][i - 1] - f[n - 1][i - 2] + MOD) % MOD * (i - 1) % MOD) %= MOD;
    }
    printf("%lld", ans);
    return 0;
}