Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
6558 18级尹玉文东 2021北京队选拔模拟赛1-B C++ 解答错误 0 62 MS 27928 KB 788 2021-04-03 15:28:30

Tests(0/10):


#include <bits/stdc++.h> #define int long long using namespace std; const int MAXN = 1008; int a[MAXN] = {1, 1, 0, 0}; int n, mod; int f[1008][1008], g[1008][1008]; signed main() { while(cin >> n >> mod) { f[1][0] = 1; for(int i = 1; i < n; i++) { for(int j = 0; j <= i - 1; j++) { g[i + 1][j + 1] += g[i][j]; g[i + 1][j + 1] %= mod; g[i + 1][j] += g[i][j]; g[i + 1][j] %= mod; if(j) f[i + 1][j - 1] += (j - 1) * (g[i][j]); f[i + 1][j - 1] %= mod; f[i + 1][j] += (i - j) * g[i][j]; f[i + 1][j] %= mod; g[i + 1][j + 1] += f[i][j] * 2; g[i + 1][j + 1] %= mod; f[i + 1][j - 1] += j * f[i][j]; f[i + 1][j - 1] %= mod; f[i + 1][j] += (i - j - 1) * f[i][j]; f[i + 1][j] %= mod; } } cout << f[n][0] % mod<< endl; } return 0; }


测评信息: