2 条题解

  • 1
    @ 2026-8-29 21:19:49
    #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
      @ 2025-9-4 21:06:55
      #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
      上传者