题目描述 区间修改有别于单点修改,如果每次都修改到叶子节点,复杂度可以退化到O(n)。 因此为节点引入一个lazy标记,修改时,如果待修改区间与某个节点的区间重合,那么这个节点更新值后标记lazy,不再修改其子节点。 类似于查询操作,这个修改操作的复杂度是O(logn)。 另外,查询或修改时,如果遇...
分类:
其他好文 时间:
2015-05-14 20:00:21
阅读次数:
122
求出根节点到每个叶子节点的距离,找到最大的。然后总权值减去最大叶子距离就是答案。GNU C++ ACVisual C++ TLE#include#include#include#includeusing namespace std;const int maxn = 111111;vector ljb...
分类:
其他好文 时间:
2015-05-14 15:52:59
阅读次数:
119
题目大意:给出一个无向图(树),要求你删除掉其中一个点,使剩下的点构成的子树中,节点数最大的那个值达到最小解题思路:因为给出的是一个无根树,第一个想法就是先把它转成有根树,将1当成根
设sum[i]为以i为根节点的子树有多少个节点,那么sum[1] - sum[i]就相当于是排除了i的所有子节点的另一棵子树的节点总数了
设dp[i]为去掉了i节点后的剩余节点所构成的子树的节点的最大值
那么dp...
分类:
其他好文 时间:
2015-05-14 08:43:29
阅读次数:
126
原文:http://www.jb51.net/article/41410.htm1.区别:body是DOM对象里的body子节点,即 标签;documentElement 是整个节点树的根节点root,即 标签;2.没使用DTD情况即怪异模式BackCompat下:代码如下:document.do....
分类:
其他好文 时间:
2015-05-13 21:40:21
阅读次数:
103
数据结构之初探二叉树
树的一些基本概念:
树:N个节点组成的有限集合(N>=0)。
子树:上一个根节点的孩子,并且也是下一层子树的根节点。
二叉树:最多只有两个孩子节点的树。
空树:没有子节点的树。
非空树:
...
分类:
其他好文 时间:
2015-05-13 10:40:45
阅读次数:
108
题目大意:给定一棵树,有mm个操作,每次给一条路径上的每个点分发一个颜色为zz的物品,所有操作结束后输出每个点上数量最多的是哪种物品
对于每个操作,我们在xx和yy上各打上一个插入zz的标记,然后在LCA(x,y)LCA(x,y)和Fa(LCA(x,y))Fa(LCA(x,y))上各打上一个删除zz的标记
然后我们对zz维护线段树
DFS一遍,对于每个节点进行如下操作:
1.将所有子节点的线...
分类:
其他好文 时间:
2015-05-12 23:09:22
阅读次数:
138
题目大意:给定n个敌方据点,1为司令部,其他点各有一条边相连构成一棵 树,每条边都有一个权值cost表示破坏这条边的费用,叶子节点为前线。现要切断前线和司令部的联系,每次切断边的费用不能超过上限limit,问切断所 有前线与司令部联系所花费的总费用少于m时的最小limit。1 2 #include ...
分类:
其他好文 时间:
2015-05-12 17:04:18
阅读次数:
115
求二叉树两结点的最近共同父结点,在网上看到了一个挺有意思的解法,原文在http://www.cnblogs.com/remlostime/archive/2012/11/26/2788795.html一般思路是从子节点深度遍历到根节点,然后比较两个路径的分叉点。他用的递归: 1 struct Nod...
分类:
其他好文 时间:
2015-05-12 13:20:01
阅读次数:
100
题意:就是给定n个点,每个地点有value[i]的宝物,而且有的宝物必须是另一个宝物取了才能取,问取m个点可以获得的最多宝物价值。一个子节点就可以返回m个状态,每个状态表示容量为j(j 2 #include 3 #include 4 #include 5 #include 6 #include 7 ...
分类:
其他好文 时间:
2015-05-12 01:23:15
阅读次数:
161
/** * nodename :选取所有子节点 * / :从根节点选取 * // :从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 * . :选取当前节点 * .. :选取当前节点的父节点 * @ :选取属性 * * * //book :选取所有book子元素 * //ti...
分类:
其他好文 时间:
2015-05-11 14:35:50
阅读次数:
153