题库首页 › 青少年软件编程(C语言) › 题目 4723

技能树 设二叉树中每个节点的子节点数为0或2,求有N个节点高度为M的不同的二叉树有多少个 (输出 mod 9901 后的结果)。 时间限制:10000 内存限制:131072 输入 两个空格分开的整数, N和K。 输出 第 1 行: 一个整数,表示可能的技能树的个数除以9901的余数。 样例输入 5 3 样例输出 2 提示 有5个节点,高为3的两个不同的技能树。约定:n在[3,300]间,m在(1,100)间

正确答案:参考程序(C++):技能树DP。二叉树子节点0或2,N节点高M。dp[n][h]表示n节点高≤h的方案数,dp[n][h]=Σdp[i][h-1]*dp[n-1-i][h-1],空树dp[0][h]=1。样例N=5,M=3→2。核心:满二叉树计数DP。

试卷来源:202112 青少年等级考试C/C++真题四级

本卷相关题目

在线做题 同科目题库