Splay&LCT】的更多相关文章

Splay && LCT \(\text{Splay}\) 基本操作 1.\(Zig \& Zag\) 其思想是维护中序遍历不变 实现中我们不真的用\(Zig\)或\(Zag\) 而是注意到他们调用的左右永远是反的 一个函数就可以实现,一定每次看图 inline void rotate(re int x){ re int y=fa[x],z=fa[y],l=*son[x]^x,r=l^1; if(fa[y])*son[z]==y?*son[z]=x:son[z][1]=x;fa[x…
Description 某天,Lostmonkey发明了一种超级弹力装置,为了在 他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当 绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞.绵羊想知道当它从第i个装置起步时,被弹几次 后会被弹飞.为了使得游戏更有趣,Lostmonkey可以修改某个弹力装置的弹力系数,任何时候弹力系数均为正整数. Input…
善良的王学长竟然亲自打了一遍QAQ好感动QAQ #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<queue> #include<cstring> #define PAU putchar(' ') #define ENT putchar('\n') using namespace std; +; inline int rea…
解析:增加三个变量lc(最左边的颜色),rc(最右边的颜色),sum(连续相同颜色区间段数).然后就是区间合并的搞法.我就不详细解释了,估计你已经想到 如何做了. 代码 #include<cstdio> #include<cstring> #include<string> #include<vector> #include<algorithm> using namespace std; ; int N,M,C[maxn]; struct lct…
代码 #include<cstdio> #include<cstring> #include<string> #include<vector> #include<algorithm> using namespace std; ; ; int val[maxn]; int N,Q; vector<int> G[maxn]; struct lct { lct *fa,*son[]; int rev,v,mv,add; }; struct…
Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴.假如两个洞穴可以通过一条或者多条通道按一定顺序连接起来,那么这两个洞穴就是连通的,按顺序连接在一起的这些通道则被称之为这两个洞穴之间的一条路径.洞穴都十分坚固无法破坏,然而通道不太稳定,时常因为外界影响而发生改变,比如,根据有关仪器的监测结果,123号洞穴和127号洞穴之间有时会出现一条通…
传送门:http://oj.cnuschool.org.cn/oj/home/problem.htm?problemID=979 WZJ的数据结构(六) 难度级别:D: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 给你一棵N个节点的无根树,边之间有权值.请你设计一个数据结构,进行以下两种操作: 1.修改:给你a.b,将第a条边的权值改为b. 2.询问:给你a.b,输出从a到b路径上的最大值.最小值与权值和,如果a=b,输出"error&…
传送门:http://oj.cnuschool.org.cn/oj/home/problem.htm?problemID=986 WZJ的数据结构(八) 难度级别:E: 运行时间限制:3000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述   给你一个N个节点的森林,从1到N编号,每个点有权值.请你设计一个数据结构,进行以下两种操作: 1.修改:给你a.b.c,将a到b路径上所有点的权值改成c. 2.增加:给你a.b.c,将a到b路径上所有点的权值增加c. 3.…
传送门:http://oj.cnuschool.org.cn/oj/home/problem.htm?problemID=983 WZJ的数据结构(七) 难度级别:C: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 给你一棵N个节点的无根树,每个点有一个权值(开始都是0).请你设计一个数据结构,完成以下功能: 给你a.b.v,请将a到b路径中的节点权值都增加v(包括a点与b点).最后输出每个节点的权值. 输入 第一行为一个正整数N.接下来…
WZJ的数据结构(负十九) 难度级别:E: 运行时间限制:3500ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 WZJ的数据结构中有很多都是关于树的.这让很多练习模板的同学还要找来找去很不爽,于是WZJ跟小伙伴们一块商量如何将这些题汇拢到一块去: WZJ:为了大家简单,我规定一开始是一棵有根树. LZJ:那我一定得加上换根操作喽. XJR:链信息修改,链信息增加,链信息翻倍,维护链信息的最大,最小,总和肯定很好做. CHX:子树信息修改,子树信息增加,子树信…