
数据结构-----主席树
柒月 流火
菜
展开
-
POJ - 2104 K-th Number 主席树 求区间第 K 小
POJ - 2104 K-th Number 题意:n个数,m次询问,每次输入 l,r,k 。求区间 l,r 中第 k 小的数。主席树讲解:http://www.cnblogs.com/zyf0163/p/4749042.htmlvoid build(int x , int l , int r , int &p)这里的x 就是该元素在原序列中的位置,p它在线段树中的位...原创 2019-04-21 16:52:55 · 162 阅读 · 0 评论 -
HYSBZ - 2588 Count on a tree LCA+主席树 树上路径求第K大
HYSBZ - 2588 Count on a tree给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor(异或)lastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。Input第一行两个整数N,M。第二行有N个整数,其中第i个整数表示点i的权值。后面N-1行每行两个整数(x...原创 2019-04-22 09:09:38 · 164 阅读 · 0 评论 -
SPOJ - COT Count on a tree LCA+主席树 树上路径求第K大模板题
SPOJ - COT Count on a tree 题意:给出一棵树,每个点都自己的权重,然后给出树上的边,要求从节点 u 到节点 v 路径上的第 k 小的权重的大小。因为权重可能很大,所以需要离散化思路:在树上建主席树每个点建一棵权值线段树,记录从这个点到根的路径上的点权信息。u可以和fa[u]的线段树共用很多信息,所以上主席树!那么 u 到 v 路径上的点权信息,...原创 2019-04-22 09:17:34 · 170 阅读 · 0 评论 -
HDU - 4417 Super Mario 主席树 || (离线)树状数组 求区间中不大于某一个数的值有多少个
HDU - 4417 Super Mario 题意:有n个数,m次询问,每次询问 L R k,求在区间 [L,R] 中小于等于 k的数有多少个。思路:用主席树来维护,每次只需要找到序列 b 中第一个等于 k 的数,那么要求的数必定在 b[1]~b[upper_bound(k)] 这个范围内,接下来就像线段树统计区间个数那样,若完全包含则直接加上 t[r].sum - t...原创 2019-04-23 20:17:56 · 261 阅读 · 0 评论