码迷,mamicode.com
首页 >  
搜索关键字:叶子    ( 2578个结果
poj1155
题意:给定一个树形图,节点数量3000。叶子节点是用户,每个用户如果能看上电视会交一定的电视费。看上电视的条件是从根到该用户的路径全部被修好,修每条边有一个费用。在不亏损(用户交钱总额>=修路总费用)的前提下,最多有多少人能看上电视。分析:树形dp。dp[u][i][j]表示对于u节点,只看其前i个...
分类:其他好文   时间:2015-04-05 21:36:57    阅读次数:156
编程之美3.8 求二叉树中节点的最大距离
描述:如果把二叉树看成一个图,父子节点之间的连线看成双向的,定义“距离”为两个节点之间边的个数。求二叉树中相距最远的两个节点的距离。思路:相距最远的两个节点一定是叶子节点,且这两个叶子节点的路径有两种情况:1. 该路径经过root节点,则两个叶子节点分属root.left和root.right为根的...
分类:其他好文   时间:2015-04-05 18:43:45    阅读次数:114
基础巩固2训练小结
本周的基础巩固2训练了基础数据结构:队列,链表,树,图,以及DFS和BFS算法等。下面总结一下一些需要注意的地方。 数据结构结构基础中树是一个难点,因为树的定义就是递归的,因此解决和树有关的问题总是从递归的思想上去考虑。树的结构中最常见的是二叉树,二叉树自身有很多独特的数学特性,因此题目中经常见到这种树,比如本次训练的E题,利用的就是二叉树叶子结点i的深度depth与总结点数的关系:1先解决边界...
分类:其他好文   时间:2015-04-05 16:09:24    阅读次数:130
B. Om Nom and Dark Park
B. Om Nom and Dark Park在满二叉树上的某些边上添加一些值。使得根节点到叶子节点的路径上的权值和都相等。求最少需要添加多少。我们利用性质解题。 考察兄弟节点。由于他们从跟节点到父节点这路径是相同的,所以需要添加的值为 2...
分类:其他好文   时间:2015-04-05 08:57:38    阅读次数:240
ZeptoLab Code Rush 2015 B. Om Nom and Dark Park DFS
让你从根走到每个叶子所要的花费都相同,请问最少得增加多少边权?
分类:其他好文   时间:2015-04-05 06:33:37    阅读次数:194
数据结构B树
B树即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字...
分类:其他好文   时间:2015-04-03 23:45:18    阅读次数:160
数据结构之线段树
线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段树是平衡二叉树,最后的子节点数目为N,即整个线段区...
分类:其他好文   时间:2015-04-03 18:45:36    阅读次数:156
在最坏情况下,找到n个元素中第二小的元素需要n+lgn-2次比较
首先两两比较找到最大的元素,需要n-1次,即二叉树的非叶子节点的个数。之后次最大的一定在和最大的元素比较过的元素中,共有lgn-1个,即树的高度。故加起来就是n+lgn-2#includeusing namespace std;class Node{public: Node(); Nod...
分类:其他好文   时间:2015-04-03 18:45:19    阅读次数:166
二叉树的三种遍历的应用(表达式,求深度,叶子数,结点数,二叉树的建立,复制)
表达式的表示如图所示的二叉树表达式:a+b*(c-d)-e/f若先序遍历此二叉树,按访问结点的先后次序将结点排列起来,其先序序列为: (波兰式,前缀表达式) -+a*b-cd/ef按中序遍历,其中序序列为:a+b*c-d-e/f (中缀表达式)按后序遍历,其后序序列为:abcd-*+ef/-(逆波兰...
分类:其他好文   时间:2015-04-03 00:05:23    阅读次数:184
看数据结构写代码(34) 树与回溯法(二)排序树(8皇后问题)
套用回溯 公式程序: void backtrack (int t) { if (t > n) { // 到达叶子结点,将结果输出 output (x); } else { // 遍历结点t的所有子结点 for (int i = f(n,t); i <= g(n,t); i ++ ) {...
分类:编程语言   时间:2015-04-01 17:43:01    阅读次数:150
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!