
数据结构-杂类
文章平均质量分 51
数据结构
Azcii
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Treap 模板
#include<cstdio>#include<cstring>#include<cstdlib>#define N 100010using namespace std;int len=0,root=1;struct{ int v,s,l,r,si;}a[N];void update (int x){ a[x].si=a[a[x].l].si+a[a[x].r].si+1;}void split(int rt,int &x,int &原创 2021-04-06 09:49:55 · 117 阅读 · 0 评论 -
Splay(普通、区间翻转) 模板
Splay_普通#include<cstdio>#include<cstring>using namespace std;#define N 100010#define mn 1e+8struct{ int v[2]={0,0},s=0,x=mn,si,fa;}f[N];int len=1,root=1,n;void update(int x){ f[x].si=f[f[x].v[0]].si*(f[x].v[0]>0)+f[f[x].v[1]].si原创 2021-04-06 09:48:56 · 192 阅读 · 0 评论 -
JZOJ 7036. 2021.03.30【2021省赛模拟】凌乱平衡树(平衡树单旋+权值线段树)
JZOJ 7036. 2021.03.30【2021省赛模拟】凌乱平衡树题目大意给出两棵Treap,大小分别为n,mn,mn,m,每个点的priorityprioritypriority值为子树大小(因此满足大根堆性质),QQQ次修改(修改是永久的),每次单旋一个节点,求修改前和每次修改后后两树合并之后的所有节点深度之和。合并按照Treap的合并方式,左树根为xxx,右树根为yyy时,当sizex≥sizeysize_x\ge size_ysizex≥sizey时以xxx为根,否则反之。1≤n,原创 2021-03-31 16:51:02 · 210 阅读 · 0 评论 -
洛谷 P5089 [eJOI2018]元素周期表(二分图+并查集)
洛谷 P5089 [eJOI2018]元素周期表题目大意n∗mn*mn∗m矩阵中已有若干点,只要有构成矩形(平行于坐标轴)的四个点中三个,就可以补充剩下一个,求把矩阵填满最少需要添加多少点。n,m≤2∗105n,m\le2*10^5n,m≤2∗105题解把行和列拆开看成二分图,发现每次添加点的操作,是在已经连通的三个点中把没连的边给连上,连通块的数量没有改变。同时,不难发现任何一个连通块中剩下的边都是可以直接加上的。现在需要把矩阵中所有点都填满,相当于所有的边都要连上,那么根据上面的结论原创 2020-11-06 11:08:14 · 219 阅读 · 0 评论 -
eJOI2018 Problem D Chemical table(二分图+并查集)
eJOI2018 Problem D Chemical table题目大意n∗mn*mn∗m矩阵中已有若干点,只要有构成矩形(平行于坐标轴)的四个点中三个,就可以补充剩下一个,求把矩阵填满最少需要添加多少点。n,m≤2∗105n,m\le2*10^5n,m≤2∗105题解把行和列拆开看成二分图,发现每次添加点的操作,是在已经连通的三个点中把没连的边给连上,连通块的数量没有改变。同时,不难发现任何一个连通块中剩下的边都是可以直接加上的。现在需要把矩阵中所有点都填满,相当于所有的边都要连上,原创 2020-11-06 11:09:47 · 4170 阅读 · 0 评论 -
JZOJ 6866. 【2020.11.16提高组模拟】路径大小差(点分治+树状数组)
JZOJ 6866. 【2020.11.16提高组模拟】路径大小差题目大意问树上有多少点对之间路径边权max−min=kmax-min=kmax−min=k,kkk为定值。k≤n≤2∗105k\leq n\leq2*10^5k≤n≤2∗105.题解其实这题比较套路,并不难想。关于树上路径计数的问题,一般先考虑点分治能不能实现,发现是可以的。按照一般点分治的套路,找到某个子树重心后,记录每个点到它的路径边权max,minmax,minmax,min,有两种情况,一种是重心为路径的一端,直接原创 2021-01-07 20:12:19 · 271 阅读 · 0 评论 -
JZOJ 3161. 【GDOI2013模拟2】排序(栈)
JZOJ 3161. 【GDOI2013模拟2】排序Time Limits: 1000 ms Memory Limits: 32768 KB题目Description给你NNN个学生的名字,要求有相同前缀的名字排在一起,具体规则如下:对于列表中任意两个有相同前缀的名字,排在这两个名字中间的名字也必须拥有相同的前缀。例如,名字MARTHA和MARY,这两个名字具有相同的前缀MAR,所以...原创 2019-02-17 08:40:47 · 292 阅读 · 0 评论