
数据结构——主席树
倚剑笑紅尘
教练,我想学kaldi!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树状结构之主席树
树状结构之主席树 转载自:点击打开链接 主席树搞了一个多星期TAT,,,,,,也只是大致领悟而已!!! 主席树又称函数式线段树,顾名思义,也就是通过函数来实现的线段树,至于为什么叫主席树,那是因为是fotile主席创建出来的这个数据结构(其实貌似是当初主席不会划分树而自己想出来的另一个处理方式。。。。是不是很吊呢? ORZ...)不扯了,切入正题。 主席树就是利用函数式编程的思想来转载 2017-08-09 21:27:09 · 245 阅读 · 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 · 467 阅读 · 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 · 241 阅读 · 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 · 571 阅读 · 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 · 367 阅读 · 0 评论 -
ZOJ 2112 Dynamic Rankings (动态第k大,树状数组套主席树)
题目链接: 题目大意:询问一个区间的第k大 但是有操作会对某个位置的值进行改变 即动态第k大 思路:树状数组套主席树 普通主席树装未修改的数据 树状数组套主席树装的是修改的数据,即修改操作在树状数组中进行 #include #include #include #include #include #include #include #include #include原创 2017-08-12 20:21:26 · 334 阅读 · 0 评论