splay
文章平均质量分 75
alan_cty
蒟蒻一只
别打脸(⊙o⊙)哦
展开
-
【bzoj1500】【NOI2005】维修数列
Description维护一个数列,支持6种操作。 1:插入 在第pos个数后面插入tot个数 2:删除 删除第pos个数开始的tot个数 3:修改 将第pos个数开始的tot个数统一改成c 4:翻转 将第pos个数开始的tot个数翻转 5:求和 计算第pos个数开始的tot个数的和 6:最大和子序列 求这个序列的最大和子序列 100%的数据中,任何时刻数列中最多含有500 000个数原创 2016-05-27 20:55:13 · 1009 阅读 · 0 评论 -
【NOI2007】货币兑换
今天听了crazy和samjia的NOI杂(砸)题选讲,感觉自己萌萌哒~ 于是就来怡情地写了这道题。Description额(⊙o⊙)…,这个不好说啊。(语文不好不好裱我) 还是贴图吧。 n<=10^5Solution咳咳,希望大家都看懂题了。 一个很明显的贪心思路就是,我们每天要不全买,要不全卖。 因为一有利益我们就去占,一有亏损我们就不碰。 那么我们可以有dp方程:F[i]=原创 2016-08-16 21:34:37 · 1397 阅读 · 0 评论 -
[完结撒花]sone0补完计划
原题传送门 终于下定决心来开这个坑 看看我在中考前能写多少分吧UPD:完成成就\(^o^)/~。。。原创 2017-05-28 10:11:52 · 1104 阅读 · 2 评论 -
[bzoj1588][HNOI2002]营业额统计
Description给出n个数,求每个数和它前面每个数的差值绝对值的最小值之和。 n<=32767Solution很显然求前驱后驱。 可以离散化后用权值线段树二分找。 也可以直接用splay找。 你喜欢就好喽。。。Code#include<cstdio>#include<cstring>#include<algorithm>#define fo(i,a,b) for(int i=a;原创 2016-09-14 20:12:38 · 1189 阅读 · 0 评论 -
[bzoj3729]Gty的游戏
Description给定一棵n个节点的数,第i个节点上有ai个石子。 有两个人在van游戏,每次操作者可以从x的子树中的任意一个点选择不超过m个石子移动到它的父亲。 给定t次操作,每次操作询问为x的子树中做游戏先手是否必胜,或者修改一个点的石子数量,又或者是给x新增一个儿子y,石子个数为z。 n,t<=50000,保证任何时刻树中结点个数和编号不超过50000Solution如果你看到了这里原创 2016-09-12 20:00:51 · 1529 阅读 · 0 评论 -
[bzoj1014][JSOI2008]火星人prefix
Description我们定义LCQ(x,y)为x这个后缀和y这个后缀的LCP(最长公共前缀) 给出一个字符串,可以在中间插入某一个字符,或者修改某一个字符,并且维护LCQ. Q<=1.5*10^5,|S|<=10^5,字符集为所有的小写字母,询问数<=10^4.Solution一眼看到还以为是裸SA(智商堪忧) 后来发现有动态插入,立马想到splay。 维护什么呢?Hash值! 然后每次原创 2016-06-20 20:36:18 · 1197 阅读 · 0 评论 -
splay学习小记
高大上的splay。 让我splay一下先。好了,讲正事。(所有图片来自wiki,感谢大力支持) splay,顾名思义,就是伸展树。它是二叉排序树的一种。然后,为了完成一些操作,它会通过不断旋转来在不破坏结构的情况下调整自身,从而减小深度,达到log n的均摊复杂度。可以说,splay的核心就是这O2(氧气)的旋转。如何旋转?首先,可以很容易的想到,左旋和右旋的打法。 但是,如果原来的树是原创 2016-04-22 18:58:47 · 893 阅读 · 0 评论 -
splay旋转模板
splay旋转模板void rotate(int x) { int y=f[x],z=son(x);f[x]=f[y]; if (f[x]) t[f[x]][son(y)]=x; t[y][z]=t[x][1-z]; if (t[x][1-z]) f[t[x][1-z]]=y; f[y]=x;t[x][1-z]=y;}void splay(int x,in原创 2016-04-20 20:49:53 · 1807 阅读 · 0 评论 -
【bzoj3506】【CQOI2014】排序机械臂
Description有n个物品,每个物品有它的高度a[i],现在我们要采用一种神奇的方法把这n个物品排好序。第x次我们找到第x矮的物品位置p[x],并且把x到p[x]中间的物品翻转。如果有多个一样高度的,位置后的更高。 求所有的p[i]。 n<=10^5Solution我们可以模拟题目中的操作。 翻转神马的splay杠杠的。 于是这道题就是一道基础splay序列题。 为了方便查找,我们可原创 2016-05-26 19:09:50 · 1215 阅读 · 0 评论 -
【WinterCamp 2013】阿凡达
Description维护一个序列,资瓷 1:将A[l]~A[r]中的每一个A[x]变为(x-l+1)*a mod b 2:询问A[l]~A[r]的和n<=1e9,m<=5*1e4Solution考虑将一次赋值看做一个颜色段,然后同一个颜色段里面的和我们可以用类欧来计算。 用线段树维护是log^2的,但我们其实有一种更加优美的写法 我们可以用一棵平衡树来维护每一个颜色端,这样子复杂度就变成了原创 2017-12-20 22:27:30 · 372 阅读 · 0 评论