
主席树
morejarphone
这个作者很懒,什么都没留下…
展开
-
主席树(可持久化线段树)学习笔记
因为是可持久化线段树,要能够保存历史版本,所以要借助线段树历史版本之间 各个节点的关系来优化内存.如果线段树每次只修改某一个叶子节点,那么整个 线段树改变的节点也就是这个叶子节点到根节点的路径上的点.所以当需要保存 版本i的线段树的时候可,如果某一个孩子没有改变,就可以让这个孩子指向前一个 版本的线段树的这个位置. 静态区间第k小: HDU 2665:点击打开链接 用到了权原创 2016-06-03 22:58:49 · 374 阅读 · 0 评论 -
SPOJ COT (主席树 LCA)
题目链接:点击打开链接 题意:求树上u-v之间路径上的第k小的节点值. 和数列的第k小类似不过写起来烦一点.在数列上求区间第k小是两个前缀减一减, 树上就是u-root,v-root前缀加一加减去两倍LCA-root,新建线段树都是在父亲节 点的基础上更新的. #include #include #include #include #include #include #inc原创 2016-06-06 13:48:05 · 503 阅读 · 0 评论 -
HDU 4417 (主席树)
Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4493 Accepted Submission(s): 2080 Problem Description Mario is world原创 2016-06-07 10:39:22 · 844 阅读 · 0 评论 -
SPOJ DQUUERY (在线主席树 | 离线树状数组)
DQUERY - D-query #sorting #tree English Vietnamese Given a sequence of n numbers a1, a2, ..., an and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For原创 2016-06-04 00:02:35 · 558 阅读 · 0 评论 -
HDU 5915 (二分 主席树)
题目链接:点击这里题意:给出一个序列,每次询问一个区间[l,r][l,r],假设里面有kk个数字,求第⌈k/2⌉\lceil k/2 \rceil个出现的数字的下标.区间出现的不同数字的个数就是这个题,用主席树写好一套函数以后二分位置每次主席树上query来check一下就好了。#include <bits/stdc++.h> using namespace std; #define maxn 20原创 2016-10-15 12:30:24 · 640 阅读 · 0 评论 -
HDU 4605 (主席树)
题目链接:点击这里题意:有一棵树二叉,每个节点有一个数字。每次询问一个节点和一个数字,问这个数字经过这个节点的概率。一个数字从根开始往下走,如果走过的节点数字和他相同,就停在这里;如果节点数字比他大,向左向右的概率都是1/2;否则向左的概率是1/8,向右的概率是7/8。对于每个询问,需要统计他到根节点路径之间的信息。所以从根开始开主席数,线段数记录走向左儿子的某个数字的个数和走向右儿子的某个数字的个原创 2016-10-26 18:52:12 · 382 阅读 · 0 评论