码迷,mamicode.com
首页 >  
搜索关键字:叶子    ( 2578个结果
hdu 1540 Tunnel Warfare(线段树)
题目链接:hdu 1540 Tunnel Warfare 题目大意:有连续的N个城镇,三种操作: D x:第x城镇被破坏Q x:插叙第x城镇所在联通块有多少个城镇没有被破坏R:修复最后一个被破坏的城镇 解题思路:线段树区间合并,每个城镇看成一个叶子节点,用一个vector记录破坏顺序。对于查询来说,每次只要判断是否在mid?R[lson(u)],mid+L[rson(u)]之间即...
分类:其他好文   时间:2014-10-03 13:05:44    阅读次数:256
acdream1412:2-3 trees 组合数dp
题意:给出一个标准2-3树的叶子节点(最底层节点)个数 L,求2-3数的形成方案数并取余分析:如果有L个叶子枚举每个可以使x*2+y*3=L的xy 那么在最底层就有c(x+y,x)种2,3的放法上一层就是有x+y个叶子的子问题这样就可以递推算了枚举时首先注意到 x=L y=-L 是一组特解,因此可以...
分类:其他好文   时间:2014-10-03 10:26:04    阅读次数:201
uvalive 6669 hidden tree(好壮压dp)
题目见here 题意:给一个序列arr[],你从中选择一些子序列,将子序列的值从左往右依次放到某棵二叉树的叶子节点上,使得除了叶子,所有节点左右子树权和相等。子树的权和 = 子树叶子的权和。如果存在这样一棵二叉树,选择的子序列就是合法的。问,最长的合法子序列是多少。 思路: 枚举二叉树可能的叶子的最小权(入手点),显然,能和此数一起组成二叉树的数,要么和这个数相等,要么是这个数的2^k倍。把...
分类:其他好文   时间:2014-10-03 02:05:43    阅读次数:259
选择排序---堆排序算法(Javascript版)
堆排序分为两个过程:1.建堆。堆实质上是完全二叉树,必须满足:树中任一非叶子结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。堆分为:大根堆和小根堆,升序排序采用大根堆,降序排序采用小根堆。如果是大根堆,则通过调整函数将值最大的节点调整至堆根。2.将堆根保存于尾部,并对剩余序列调用调...
分类:编程语言   时间:2014-10-03 00:28:23    阅读次数:255
浅析__线段树延迟标记
转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents当中有文字系转载!区间更新是指更新某个区间内的叶子节点的值,由于涉及到的叶子节点不止一个,而叶子节点会影响其对应的非叶父节点,那么回溯须要更新的非叶子节点也会有非常多,假设一次性更新完,...
分类:其他好文   时间:2014-10-02 19:15:05    阅读次数:126
线段树之入门篇
线段树(interval tree) 是把区间逐次二分得到的一树状结构,它反映了包括归并排序在内的很多分治算法的问题求解方式。   上图是一棵典型的线段树,它对区间[1,10]进行分割,直到单个点。这棵树的特点 是: 1. 每一层都是区间[a, b]的一个划分,记 L = b - a 2. 一共有log2L层 3. 给定一个点p,从根到叶子p上的所有区间都包含点p,且其他区间都不包...
分类:其他好文   时间:2014-10-02 09:14:52    阅读次数:196
hdu 5044 树区间操作最后输出/ lca+dfs
题意:一棵树,俩种操作:1 有路径上的所有点加vi,2所有边加vi。  先离线求出所有询问的lca,再遍历询问一次,点+vi,lca-2*vi ,最后dfs从叶子扫上来一次,最后再祖先点补上即可。用了输入挂。复杂度(n+m). #pragma comment(linker,"/STACK:10240000000000,10240000000000") #include #include #in...
分类:其他好文   时间:2014-10-01 13:08:21    阅读次数:160
oracle 性能优化--索引总结
索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据;     Oracle存储索引的数据结构是B*树,位图索引也是如此,只不过是叶子节点不同B*数索引;     索引由根节点、分支节点和叶子节点组成,上级索引块包含下级索引块的索引数据,叶节点包含索引数据和确定行实际位置的rowid。 使用索引的目的: 加快查询速度 减少I/O操作 消除磁盘排序 ...
分类:数据库   时间:2014-09-30 18:33:29    阅读次数:283
Binary Tree Inorder Traversal [leetcode] 非递归的三种解法
第一种方法是Morris Traversal 是O(n)时间复杂度,且不需要额外空间的方法。缺点是需要修改树。 通过将叶子节点的right指向其中序后继。 代码如下 vector inorderTraversal(TreeNode *root) { vector res; TreeNode * cur = root; TreeNode...
分类:其他好文   时间:2014-09-27 22:46:50    阅读次数:195
编程判断一个树是完全二叉树(使用层次遍历实现)
完全二叉树:一棵具有N个节点的二叉树的结构与满二叉树的前N个节点的结构相同 如何判断一个树是完全二叉树 可以使用层序遍历,只需2个步骤 第一步:如果遍历到一个节点只有右子树没有左子树,则不是完全二叉树 第二部:如果遍历到一个节点只有左子树,那么后面遍历到的节点必须是叶子节点,否则也不是完全二叉树 排除以上两种情况,则树是完全二叉树 核心代码: //层序遍历 int L...
分类:其他好文   时间:2014-09-27 21:59:03    阅读次数:401
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!