主席树
sun.strick
这个作者很懒,什么都没留下…
展开
-
bzoj2588
树上主席树。听上去好像十分高大。。然而其实思路是非常清晰地。//就是在dfs的时候更新新的主席树 然后有一个办法稍微有点巧妙。就是求x,y这一条链上某一段权值的和可以转换为sum[x]+sum[y]-sum[lca(x,y)]-sum[fa(lca(x,y)] 然后因为蒟蒻打lca只会树剖然后代码就稍显的有点长了。。。#include #include #include #include原创 2016-07-13 23:17:55 · 243 阅读 · 0 评论 -
主席树模板求不带修改的区间k大
现在会主席树是不是晚了点。主席树的牛逼就是公用了节点然后因为类似前缀和(其实可以叫做时间前缀和)所以节点可以拿来相减。然后就十分玄妙了。。。 #include #include #include using namespace std; const int N = (int)3e6 + 10; const int maxn = (int)1e5; int lson[N], rson[N],转载 2016-07-06 08:14:13 · 240 阅读 · 0 评论 -
带修改区间k大
看了好久,后来自己想了一下。大概就是说因为原来的写法下要修改的代价太大了,所以套上一个树状数组使每颗主席树存特定几个位置上的权值。平均一下修改和询问的代价。#include #include #include #define N 2200001 using namespace std; int n,m,tot,top,sz; int v[10001],num[20001],hash[20001];转载 2016-07-06 11:00:51 · 311 阅读 · 0 评论