大意: 求n结点m叶子二叉树个数. 直接暴力, $dp[i][j][k][l]$表示第$i$层共$j$节点, 共$k$叶子, 第$i$层有$l$个叶子的方案数, 然后暴力枚举第$i$层出度为1和出度为2的个数来转移. 复杂度虽然看上去是$O(n^6)$, 但实际上去掉多余状态后只有1178917, ...
分类:
其他好文 时间:
2019-05-26 12:31:59
阅读次数:
112
大意: 给定树, 初始每个点全为白色, 点$i$有权值$k_i$, 表示选择$i$后, 所有距离$i$小于$k_i$的祖先(包括i)会变为黑色, 求最少选多少个点能使所有点变为黑色. 链上情况的话, 直接从链头开始做一次线性dp就行了, 但是显然不能拓展到树上情况. 正解是从叶子往上贪心划分, 若当 ...
分类:
其他好文 时间:
2019-05-26 11:15:45
阅读次数:
132
树的划分流程 理解树,就需要理解几个关键词:根节点、父节点、子节点和叶子节点。 父节点和子节点是相对的,说白了子节点由父节点根据某一规则分裂而来,然后子节点作为新的父亲节点继续分裂,直至不能分裂为止。而根节点是没有父节点的节点,即初始分裂节点,叶子节点是没有子节点的节点 决策树的做法是每次选择一个属 ...
分类:
其他好文 时间:
2019-05-23 15:38:04
阅读次数:
611
其实这是一个很简单的题目,用很多方法都可以做。但是我自己想的就没有参考答案做的好。 由于风车的每个叶子都是相同的构造,他们的绘制过程都是相对于中心点【前进150】【转过90°】【画圆弧】【回到原点】 然后每一片叶片的开始角度分别为-45,45,135,225 初始位置在(0,0)处 那么就可以采用一 ...
分类:
编程语言 时间:
2019-05-12 10:46:36
阅读次数:
147
求二叉树中叶子节点的个数 面试题二叉树 题目描述 求二叉树中叶子节点的个数。 叶子节点的定义: 如果一个节点既没有左孩子,也没有右孩子,则该节点为叶子节点。 示例: 在这个二叉树中,叶子节点有 9,15,7,所以返回 3。 Java 实现 运行结果 leaf nodes:9 leaf nodes:1 ...
分类:
其他好文 时间:
2019-05-11 17:51:00
阅读次数:
164
什么是哈夫曼树 当用 n 个结点(都做叶子结点且都有各自的权值)试图构建一棵树时,如果构建的这棵树的带权路径长度最小,称这棵树为“最优二叉树”,有时也叫“赫夫曼树”或者“哈夫曼树”。在构建哈弗曼树时,要使树的带权路径长度最小,只需要遵循一个原则,那就是:权重越大的结点离树根越近。在图 1 中,因为结 ...
分类:
其他好文 时间:
2019-05-10 23:29:27
阅读次数:
146
描述 当用 n 个结点(都做叶子结点且都有各自的权值)试图构建一棵树时,如果构建的这棵树的带权路径长度最小,称这棵树为“最优二叉树”,有时也叫“赫夫曼树”或者“哈夫曼树”。 现给定若干权值,请构建一棵哈夫曼树,并输出各个权值对应的哈夫曼编码长度。 哈夫曼树中的结点定义如下: //哈夫曼树结点结构 t ...
分类:
其他好文 时间:
2019-05-09 22:02:18
阅读次数:
138
题目描述 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1。 我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。下面是一颗有4个树枝的树 现在这颗树枝条太多了,需要剪枝。但是一些树枝上长有苹果 ...
分类:
移动开发 时间:
2019-05-08 21:47:05
阅读次数:
146
要点 寻找最多边的匹配的结论:贪心地从叶子开始找,最后答案都是奇数层下边的那条边。 设$dp[i][j]$表示当前长度为$i$,平衡度为$j$,平衡度为 数量减去 数量。 增加左右括号转移,并将奇数层合法的加到ans中。 C++ include const int maxn = 1005, mod ...
分类:
其他好文 时间:
2019-05-07 01:37:56
阅读次数:
159
树的直径: 利用了树的直径的一个性质:距某个点最远的叶子节点一定是树的某一条直径的端点。 先从任意一顶点a出发,bfs找到离它最远的一个叶子顶点b,然后再从b出发bfs找到离b最远的顶点c,那么b和c之间的距离就是树的直径。 用dfs也可以。 http://poj.org/problem?id=19 ...
分类:
其他好文 时间:
2019-05-06 01:14:21
阅读次数:
126