以下转自http://prominences.weebly.com/1/post/2013/02/1.html可持久化线段树,也叫作函数式线段树,也就是主席树,(。。。因为先驱就是fotile主席。。Orz。。。)网上的教程很少啊,有的教程写得特别简单,4行中文,然后就是一篇代码~~这里,我将从查找...
分类:
其他好文 时间:
2015-04-12 14:41:29
阅读次数:
123
题目大意给出一些任务开始的时间,结束的时间,和优先级。问在第k秒时的第k大优先级,和前k小优先级的和。思路CQOI太良心,所有题都是512M。
这个题只需要按照时间轴弄一个可持久化线段树就行了,每个时间点对应着一个权值线段树,维护子节点的和和个数。
注意在没有操作的时候,当前时间点的线段树要复制上一个时间点的线段树。CODE#define _CRT_SECURE_NO_WARNINGS#incl...
分类:
其他好文 时间:
2015-04-09 13:45:34
阅读次数:
203
题解:
首先肯定要用线段树。
如果没有强制在线,那么直接把询问排个序然后按秩插入、删除、查询。普通线段树就好了,但是这道题强制在线,就需要可持久化线段树了。
线段树的每个区间记录[x:这段区间有的权值总和]、[n:这段区间有多少个权值][x:这段区间有的权值总和]、[n:这段区间有多少个权值]
然后每个版本表示一个时间点的线段树。
这道题每个版本可能有多个节点被修改,所以我们可以先当成多...
分类:
其他好文 时间:
2015-04-08 10:56:19
阅读次数:
168
题目大意见http://pan.baidu.com/s/1o6zajc2
主席树裸上就好了。。。
#include
#include
#include
#include
#define M 100100
using namespace std;
struct Segtree{
Segtree *ls,*rs;
int size;
long long sum;
void* op...
分类:
其他好文 时间:
2015-04-07 15:41:45
阅读次数:
129
Trie树/可持久化线段树 神题啊……搞了我一下午= =(其实第233个提交也是我的) 我一开始的思路:这个找kpm串的过程,其实就跟在AC自动机上沿fail倒着往下走是差不多的(看当前是哪些点的后缀,如果某个串的后缀是当前串,那它的fail就会指向这里)所以就在fail树上bfs一遍,然后找到.....
分类:
其他好文 时间:
2015-04-05 21:41:44
阅读次数:
302
题目链接
题意:给n个数,m次查询,求[l,r]之间不重复数的个数。
思路:主席树。用一个map记录每个值在当前操作下最新的位置,从前往后插入主席树。对于查询[l,r],窝们在root[ l ]下查询在r之前的不重复数的个数。详见代码:/*********************************************************
file name: spoj3267...
分类:
其他好文 时间:
2015-04-04 16:47:47
阅读次数:
235
感觉做这种题收获很大。1、DFS序(广义上)除了用于静态子树操作,也可以用来做点到根的路上某些信息的统计(如点到根的路径上标记了多少个点),如果在加上lca,就可以支持路径的信息查询。2、树上的可持久化线段树,如果每个节点要维护一个线段树,并且该线段树支持加减操作,那么通过可持久化+lca,搞定一条...
分类:
其他好文 时间:
2015-04-01 21:35:15
阅读次数:
178
题目连接:BZOJ - 3218题目分析题目要求将 n 个点染成黑色或白色,那么我们可以转化为一个最小割模型。我们规定一个点 i 最后属于 S 集表示染成黑色,属于 T 集表示染成白色,那么对于每个点 i 就要连边 (S, i, B[i]) 和 (i, T, W[i])。这样,如果一个点属于 S 集...
分类:
其他好文 时间:
2015-03-31 12:25:22
阅读次数:
157
题目大意:给定平面上n个点,一共有k种颜色,要求选定一条线段,并选取线段正上方或正下方的所有点,要求不能出现所有颜色的点,求最多选择多少点
正解是双向链表+树状数组?
让我们来点优雅的做法
由于不能出现所有颜色的点 因此一定有至少一种颜色不出现 我们可以枚举这个不出现的颜色
现在我们搞出所有极大子矩形
这个分治就好了。。。
假设我们现在求的是一条线段下方的点 那么我们考...
分类:
其他好文 时间:
2015-03-20 22:10:33
阅读次数:
176
可持久化线段树 maya……树么……转化成序列……所以就写了个树链剖分……然后每个点保存的是从它到根的可持久化线段树。 然后就像序列一样查询……注意是多个左端点和多个右端点,处理方法类似BZOJ 1901 然后rausen(Orz!!!)粗来跟我说:你直接减去lca和fa[lca]不就好啦~搞...
分类:
其他好文 时间:
2015-03-16 12:45:35
阅读次数:
167