![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
许启明
这个作者很懒,什么都没留下…
展开
-
【FZU-2297】Number theory
#include<iostream>#define rep(i,n) for(int i=1;i<=n;i++)#define ls i<<1#define mid (l+r)/2using namespace std;const int N=200005;int n,m,t,L,R,pos,x,c[N*4];char ch;void update...原创 2020-03-24 17:27:19 · 131 阅读 · 0 评论 -
P3332 [ZJOI2013]K大数查询
树套树的区间更新,区间查询区间更新用的是差分的做法实现的,理论时间复杂度应该是最快的?不明白为什么有大佬能跑到几百ms,好像用的是整体二分。。。详解以后有时间单独贴,理解起来不是很容易差分做法:#include<bits/stdc++.h>#define ls ls_[i]#define rs rs_[i]#define mid (l+r)/2using nam...原创 2019-12-10 16:15:55 · 114 阅读 · 0 评论 -
P2633 Count on a tree
一道水题水一天,玄学玄学对拍输出数据都对。。结果一直报re。。最后发现居然是因为一个没有返回值的函数没有用void类型,格式不规范开o2居然会报re?这神仙bug我真是吐血三升以后再遇到找不到的bug还是尽早重写吧。。。思路很清晰的一题:主席树,儿子继承父亲,可以发现每个节点当前版本的权值线段树维护的就是从这一节点到根节点的权值。于是只要倍增找到x,y两节点的lca,就可以得到:...原创 2019-12-20 21:07:11 · 110 阅读 · 0 评论 -
hdu2665
主席树模板题:http://acm.hdu.edu.cn/showproblem.php?pid=2665#include<bits/stdc++.h>#define ls ls_[i]#define rs rs_[i]#define mid (l+r)/2using namespace std;const int NN=100100;int n,m,k,x,y,z,q...原创 2019-12-24 19:48:48 · 99 阅读 · 0 评论 -
P3380 二逼平衡树
#include<bits/stdc++.h>#include<ext/pb_ds/assoc_container.hpp>#include<ext/pb_ds/tree_policy.hpp>#define ls lc[o]#define rs rc[o]#define mp_ make_pair#define Pr pair<int,int...原创 2019-12-24 19:48:12 · 143 阅读 · 0 评论 -
P3810 三维偏序(陌上花开)
既然之前写这道题的时候提到了一下动态开点的写法,那就来更一下线段树套线段树(其实是权值树状数组套权值线段树)的写法本质上和套平衡树的写法是一个思路,只不过平衡树更省空间就是了。。。像这一题我一直开到2e5的40倍才过,真是丧mei心miao病wu狂bi#include<bits/stdc++.h>#define ls lc[o]#define rs rc[o]#define...原创 2019-12-24 19:48:29 · 175 阅读 · 0 评论 -
P3224 [HNOI2012]永无乡
题目链接:https://www.luogu.com.cn/problem/P3224这题的平衡树写法,实测不开o2的情况下权值线段树快些,开了o2后最后一个大数据平衡树更快#include<bits/stdc++.h>#include<ext/pb_ds/assoc_container.hpp>#include<ext/pb_ds/tree_policy.h...原创 2019-12-04 07:56:39 · 104 阅读 · 0 评论 -
P3224 [HNOI2012]永无乡
平衡树的一道题目,也可以用动态开点的权值线段树来做,毕竟好打,理解也不难对于每一座岛开一棵动态开点的线段树,连接岛屿时,将两个连通块合并,顺便合并线段树吐血的是第一遍写一直re,重写一遍直接过了#include<bits/stdc++.h>#define ls lc[o]#define rs rc[o]#define mid (l+r)/2using namespace ...原创 2019-12-03 22:27:33 · 90 阅读 · 0 评论 -
P3810 三维偏序(陌上花开)
还是这道题,不过是树套树解法。权值线段树套平衡树用了pbds库里封装好的平衡树,手打splay的话要二百行了。。。pbds库是真的香,打出来比cdq分治还短。。三维偏序问题的总体思路都是转化为二维偏序问题来想,cdq分治是用分治的方法保证了每次查询时前两维是有序的,(右区间严格大于左区间,二维压缩为一维),再用权值线段树维护第三维。而树套树则是保证第一微有序后,用第三维作第二维的值,再用权值...原创 2019-12-24 19:48:32 · 174 阅读 · 0 评论 -
【cdq分治】P3810 三维偏序(陌上花开)
CDQ分治的模板题暴力一些用树套树也可以写#include<bits/stdc++.h>#define mid (l+r)/2using namespace std;typedef long long ll;const int NN=400100;const int inf=0x3f3f3f3f;ll n,m,k,x,y,z,q,W,T,N,cnt,tmp,dst,c...原创 2019-12-03 08:25:31 · 93 阅读 · 0 评论 -
【倍增】【st表模板】洛谷P3865
提起动态区间问题,我们首先想到的肯定是线段树但是对于静态的区间问题来说,可能有些算法是更加高hao效xie的~今天来介绍一种叫st表的数据结构,了解一下它的倍增思想-------------挖个坑,以后补哈~-------------#include<bits/stdc++.h>using namespace std;typedef long long ll;const...原创 2019-12-01 14:44:52 · 82 阅读 · 0 评论 -
Codeforces Round #603 (Div. 2) E(线段树区间更新)
题目链接:http://codeforces.com/contest/1263/problem/E题目大意是给你一个光标,输入命令控制移动或改变当前位置的符号,对于每个命令输出当前括号的是否匹配,如果匹配则输出最大的嵌套层数。样例:input:11(RaRbR)L)L(output:-1 -1 -1 -1 -1 -1 1 1 -1 -1 2可以将左括号视为+1,右括号视为-1,...原创 2019-11-30 13:56:10 · 160 阅读 · 1 评论