• UPC11073(DP,思维)


    #include<bits/stdc++.h>
    using namespace std;
    long long dp[507][507];
    const long long mod = 998244353;
    int main(){
     int n,k;
     scanf("%d%d",&n,&k);
     for(int i=1;i<=n+1;i++)
            dp[0][i]=1;
     for(int i=2;i<=n+1;i++)
      for(int j=1;j<=n;j++)
                for(int k=0;k<j;k++){
        dp[j][i]+=dp[k][i-1]*dp[j-k-1][i-1];
        dp[j][i]=dp[j][i]%mod;
                }
     printf("%lld",(dp[n][n+1]-dp[n][k]+mod)%mod);
    }
    //dp[x][y]表示x个点、层数小于y的二叉树数量对于 dp[x][y] 来说,要么不存在根节点 (x=0),要么去掉根节点后可以得到两个层数小于y-1的二叉树数量,点数分别为 u 和 v (x>0, u+v=x-1),两棵子树互相不影响,方案数相乘

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    TSP-UK49687
    维度建模的基本原则
    差分约束系统
    随机过程初步
    随机过程——维纳过程
    Xilinx FPGA复位信号设计
    10 Row Abacus
    Python
    FX2LP与FPGA的简单批量回环
    DFT公式的一个简单示例
  • 原文地址:https://www.cnblogs.com/ldudxy/p/10409255.html
Copyright © 2020-2023  润新知