数据结构——主席树
倚剑笑紅尘
教练,我想学kaldi!
展开
-
树状结构之主席树
树状结构之主席树转载自:点击打开链接主席树搞了一个多星期TAT,,,,,,也只是大致领悟而已!!!主席树又称函数式线段树,顾名思义,也就是通过函数来实现的线段树,至于为什么叫主席树,那是因为是fotile主席创建出来的这个数据结构(其实貌似是当初主席不会划分树而自己想出来的另一个处理方式。。。。是不是很吊呢? ORZ...)不扯了,切入正题。主席树就是利用函数式编程的思想来转载 2017-08-09 21:27:09 · 226 阅读 · 0 评论 -
【bzoj2212】[Poi2011]Tree Rotations(线段树的合并)(主席树-可持久化线段树)
POI 18 Tree Rotations• http://main.edu.pl/en/archive/oi/18/rot题目大意:• 给定一棵2n-1个节点的二叉树,每个叶子上有1~n的数字,保证每个数字出现且仅出现一次• 允许任意次交换某两棵兄弟子树• 对交换完毕的树求先序遍历,形成1~n的一个排列• 求这个排列最小的逆序对个数• 1 ≤ n ≤原创 2017-08-11 15:31:18 · 422 阅读 · 0 评论 -
poj2140 K-th Number(静态区间第 k 大)
题目链接:poj2104题目大意; 静态区间第 k 大模板题 非递归主席树 摘自kuangbin模板 #include #include #include #include #include #include #include #include #include #include #include #include using namespace原创 2017-08-11 17:03:33 · 217 阅读 · 0 评论 -
D-query SPOJ - DQUERY 查询区间有多少个不同的数(SPOJ DQUERY)
题目链接:题意:查询区间有多少个不同的数思路:主席树的模板题建立主席树的话,每次建立前对之前的那个状态进行判断,判断要加的那个数是否已经出现过,如果没有出现过的话对应位置加1。如果出现过的话,将出现过的该数字的位置清0,将当前的位置加1. T[n+1] = build(1,n);//建立一颗空树mapmp; for(int i = n;i>= 1;i--)原创 2017-08-11 19:39:04 · 538 阅读 · 0 评论 -
SPOJ 10628. Count on a tree (树上第k大,LCA+主席树)
题目链接:点击打开链接题目大意:给你一颗n个结点的树,每个结点都有一个权值。为从结点u到结点v这条路径上所有的权值第k大是多少思路:主要思路是 树上第k大,LCA+主席树为什么要用到LCA?因为u到v的路径必定是从u走到他们的LCA(u,v)点,然后从LCA(u,v)点走到v。所以我们需要提前求出这棵树的LCA主席树怎么建树?每一棵线段树都是每个结点继承其父节点的原创 2017-08-11 21:54:26 · 333 阅读 · 0 评论 -
ZOJ 2112 Dynamic Rankings (动态第k大,树状数组套主席树)
题目链接:题目大意:询问一个区间的第k大 但是有操作会对某个位置的值进行改变 即动态第k大思路:树状数组套主席树普通主席树装未修改的数据树状数组套主席树装的是修改的数据,即修改操作在树状数组中进行#include #include #include #include #include #include #include #include #include原创 2017-08-12 20:21:26 · 312 阅读 · 0 评论