这题网上题解比较少……于是本蒟蒻就来写一发吧~~~~~吐槽时间~~~~~这种题属于太弱布吉岛,普通人不会做,太神更不做的题目……Katharon#1题解中似乎讲的蛮详细的,不过我是自己YY的……因为提前被剧透是Splay+LCT,于是本蒟蒻看了半天布吉岛那个据点顶个鸟用,题解表示,我这是给你们降低难...
分类:
其他好文 时间:
2015-01-26 10:13:56
阅读次数:
312
题目大意:给定一个字符串,多次插入一个字符和询问某两个后缀的LCP
Splay+Hash。同1014
这逗比的询问。。。。。。
#include
#include
#include
#include
#define M 50500
#define BASE 151
using namespace std;
typedef unsigned long long ll;
struct a...
分类:
其他好文 时间:
2015-01-22 11:08:55
阅读次数:
190
题目大意:初始给出一个字符串,下面有一些操作,可以在一个地方加一个字符,询问从两个地方开始最长的匹配长度。
思路:Splay维护Hash值,询问的时候二分一下就行了。它条件给的比较恶心,注意处理的时候按照他说的做就行了。
CODE:
#define _CRT_SECURE_NO_DEPRECATE
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2015-01-21 15:13:43
阅读次数:
299
void splay(Node * &o,int k)
{
int d=o->cmp(k);//cmp函数比较的是k和o->ch[0]->s+1的大小
if(d==1) k-=o->ch[0]->s+1;
if(d!=-1)
{
Node *p=o->ch[d];
int d2=p->cmp(k);
i...
分类:
其他好文 时间:
2015-01-20 10:32:20
阅读次数:
143
原文:6天通吃树结构—— 第四天 伸展树 我们知道AVL树为了保持严格的平衡,所以在数据插入上会呈现过多的旋转,影响了插入和删除的性能,此时AVL的一个变种
伸展树(Splay)就应运而生了,我们知道万事万物都遵循一个“八二原则“,也就是说80%的人只会用到20%的数据,比如说我们
的“QQ输入法”...
分类:
其他好文 时间:
2015-01-16 12:53:25
阅读次数:
129
实现的功能:将序列区间反转,并维护详见BZOJ3223 1 var 2 i,j,k,l,m,n,head,a1,a2:longint; 3 s1:ansistring; 4 a,b,c,d,fat,lef,rig:array[0..200000] of longint; ...
分类:
编程语言 时间:
2015-01-15 00:27:26
阅读次数:
339
最近。。
最近心里颇不平静。
最近花了三天时间学了zkw Splay,发现这玩意儿真TM难写;加上各种Code Trick也还是写了好久,还有各种错误,一直在炸。
一些心得:
①维护size时不需要考虑太多东西,只需要改变孩子指针后直接用孩子的size维护即可,注意要在两个地方维护:
旋转的时候维护;
翻转子树链表的时候维护。
②zkw Splay中左临时树是一些没有右孩子子树的节点,然后。。为了方便(真的方便么。。),我们可以一开始用每棵子树的右儿子存储它的父节点,然后再把根表反转。
反转真是一...
分类:
其他好文 时间:
2015-01-13 09:06:40
阅读次数:
201
Splay真心比sbt难调多了QAQ
调一个remove一上午终于搞好了QAQ
#include
#include
#include
#include
#include
#define P 1000000
#define MAXINT 100000000000
using namespace std;
struct splay
{
splay *ch[2],*fa;//ch[0]为左子树ch...
分类:
其他好文 时间:
2015-01-10 16:41:27
阅读次数:
166
用了两天时间学了Splay+搞自己的模板
最后应该算是搞完了吧。
虽然可能还是有很多不太完美的地方OTZ
总感觉单纯维护集合还是sbt更好用QUQ(要不是为了做区间才不学Splay呢!)
指针各种难调试啊OTZ
一个remove调了一天(╯‵□′)╯︵┻━┻
以后除非是区间否则坚决不想用的东西(常数还比sbt大那么多=0=)
#include
#include
#include
#i...
分类:
其他好文 时间:
2015-01-10 16:41:21
阅读次数:
141