2 条题解
-
1
#include <iostream> #include <cstring> using namespace std; int main() { int N, K; cin >> N >> K; if (N % 2 == 0) { cout << 0 << endl; return 0; } int g[200][101]; memset(g, 0, sizeof(g)); for (int h = 1; h <= K; h++) { g[1][h] = 1; for (int n = 3; n <= N; n += 2) { for (int nl = 1; nl <= n - 2; nl += 2) { int nr = n - 1 - nl; g[n][h] = (g[n][h] + g[nl][h-1] * g[nr][h-1] % 9901) % 9901; } } } int ans = (g[N][K] - g[N][K-1] + 9901) % 9901; cout << ans << endl; return 0; } -
0
#include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int Mod=9901; int dp[210][110],n,k; int main(){ scanf("%d%d",&n,&k); for (int i=1;i<=k;i++)dp[1][i]=1; for (int tk=1;tk<=k;tk++) for (int i=3;i<=n;i+=2) for (int j=1;j<i;j+=2) (dp[i][tk]+=dp[j][tk-1]*dp[i-j-1][tk-1])%=Mod; printf("%d",(dp[n][k]-dp[n][k-1]+Mod)%Mod); return 0; } #include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int Mod=9901; int dp[210][110],n,k; int main(){ scanf("%d%d",&n,&k); for (int i=1;i<=k;i++)dp[1][i]=1; for (int tk=1;tk<=k;tk++) for (int i=3;i<=n;i+=2) for (int j=1;j<i;j+=2) (dp[i][tk]+=dp[j][tk-1]*dp[i-j-1][tk-1])%=Mod; printf("%d",(dp[n][k]-dp[n][k-1]+Mod)%Mod); return 0; } #include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int Mod=9901; int dp[210][110],n,k; int main(){ scanf("%d%d",&n,&k); for (int i=1;i<=k;i++)dp[1][i]=1; for (int tk=1;tk<=k;tk++) for (int i=3;i<=n;i+=2) for (int j=1;j<i;j+=2) (dp[i][tk]+=dp[j][tk-1]*dp[i-j-1][tk-1])%=Mod; printf("%d",(dp[n][k]-dp[n][k-1]+Mod)%Mod); return 0; }
- 1
信息
- ID
- 575
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 34
- 已通过
- 16
- 上传者