题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2588 Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权。其中lastans是上一个
分类:
其他好文 时间:
2016-03-02 18:06:00
阅读次数:
157
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2588lca+可持久化线段树在树上建一棵可持久化线段树就可以了。#include#include#include#include#define rep(i,l,r) for (int i=l;i=...
分类:
其他好文 时间:
2015-12-21 15:47:44
阅读次数:
191
标题效果:间隔可以改变k少我的两个天树牌主席。。。隔断Count On A Tree 之后我一直认为,随着树的主席的变化是分域林木覆盖率可持久段树。。。事实上,我是误导。。。尼可持久化线段树毛关系都木有啊!!!那就是动态的权值线段树啊啊啊啊啊啊啊!!!好吧这里给不明确主席树的孩纸一些简单介绍:1.外...
分类:
其他好文 时间:
2015-10-27 15:05:36
阅读次数:
281
SPOJ 10628. Count on a tree (树上第k大,LCA+主席树)10628. Count on a treeProblem code: COTYou are given a tree withNnodes.The tree nodes are numbered from1toN...
分类:
其他好文 时间:
2015-10-10 20:04:56
阅读次数:
287
2588: Spoj 10628. Count on a treeTime Limit: 1 Sec Memory Limit: 256 MB题目连接http://www.lydsy.com/JudgeOnline/problem.php?id=2588Description给定一棵N个节点的树,每...
分类:
其他好文 时间:
2015-09-06 14:28:12
阅读次数:
167
题意:给一个树图,每个点的点权(比如颜色编号),m个询问,每个询问是一个区间[a,b],图中两点之间唯一路径上有多少个不同点权(即多少种颜色)。n 2 #define pii pair 3 #define INF 0x3f3f3f3f 4 #define LL long long 5 usi...
分类:
编程语言 时间:
2015-08-27 18:01:07
阅读次数:
2266
Orz..跑得还挺快的#10自从会树链剖分后LCA就没写过倍增了...这道题用可持久化线段树..点x的线段树表示ROOT到x的这条路径上的权值线段树-------------------------------------------------------------------------#in...
分类:
其他好文 时间:
2015-07-30 00:27:32
阅读次数:
231
标题效果:两棵树之间的首次查询k大点的权利。思维:树木覆盖树,事实上,它是正常的树木覆盖了持久段树。由于使用权值段树可以寻求区间k大,然后应用到持久段树思想,间隔可以做减法。详见代码。CODE:#include #include #include #include #define MAX 10001...
分类:
其他好文 时间:
2015-07-23 21:21:33
阅读次数:
112
题解:
对于每个树上节点存一个版本的可持久化线段树,为它到根节点上所有权值的权值线段树(需要离散化)。
然后对于每次询问,这条链(a,b)的线段树就是:线段树a+线段树b?线段树lca?线段树falca线段树_a + 线段树_b - 线段树_{lca} - 线段树_{fa_{lca}}
然后线段树上求第k小啦。
代码:
#include
#include
#include...
分类:
其他好文 时间:
2015-04-15 09:44:07
阅读次数:
176
每个点的主席树的root是从其父转移来的。询问的时候用U+V-LCA-FA(LCA)即可。#include#includeusing namespace std;#define N 100001int v[N>1); T[cur].lc=++e; BuildTree(T[cur].lc,l,m); ...
分类:
其他好文 时间:
2015-04-13 20:40:23
阅读次数:
139