ICode9

精准搜索请尝试: 精确搜索
  • [ZJOI2006]书架(权值splay)2020-02-01 15:00:30

    [ZJOI2006]书架(luogu) Description 题目描述 小T有一个很大的书柜。这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列。她用1到n的正整数给每本书都编了号。 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本。由于这些书太有吸引力了,所以她看完后常常会忘记原

  • [NOI2005]维护数列(区间splay)2020-02-01 09:56:54

    [NOI2005]维护数列(luogu) 打这玩意儿真是要了我的老命 Description 请写一个程序,要求维护一个数列,支持以下 6 种操作:(请注意,格式栏 中的下划线‘ _ ’表示实际输入文件中的空格)   Code #include <cstdio> #include <cstdlib> #include <algorithm> #define TAGNONE 10000001 usin

  • 文艺平衡树(splay)2020-01-31 10:55:39

    文艺平衡树(luogu) Description 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列。 其中需要提供以下操作:翻转一个区间,例如原有序序列是 5\ 4\ 3\ 2\ 15 4 3 2 1,翻转区间是 [2,4][2,4] 的话,结果是 5\ 2\ 3\ 4\ 15 2 3 4 1。 输入格式 第一行两个正整

  • 平衡树(splay)2020-01-27 19:38:04

    文章目录1.About splay2.基本操作2.1 数组是干啥的?2.2 基本操作3.splay3.1 rotate函数3.2 splay函数4.更新操作4.1 插入函数4.2 删除函数5.查询操作5.1 查询一个数的排名(rank函数)5.2 查询第k大(kth函数)5.3 查找一个数的前驱(lower)5.4 查找一个数的后继(upper)6. 模板题代

  • To do list2020-01-24 16:57:47

    要落实的题 好多把多懒得贴了。。。 要学的东西 学习\(\text{Splay}\) 学习计算几何 学习多项式算法 学习后缀数组

  • 平衡树(splay)学习笔记2020-01-15 12:00:11

    Splay和一般的BST的区别大概就是:每次插入一个元素后,把它旋转到根 其核心操作就是$splay$和$rotate$   Rotate:把$x$转到$x$的父亲的位置上   $rotate$很好理解,自己画个图玩玩就会了,代码要注意细节 void pushup(int x) { sz[x]=sz[ch[x][0]]+sz[ch[x][1]]+cnt[x]; } void

  • 芝士:splay2020-01-09 16:04:38

    目录 背景 主要思想 操作 旋转 思路 代码 splay 思路 代码 将某个节点提到根节点 思路 代码 初始化 思路 代码 前驱&后继 思路 代码 插入 思路 代码 删除 思路 代码 排名 思路 代码 第k大 思路 代码 板子 背景 因为BST本身存在一定的缺陷, 还有毒瘤出题人故意卡 导

  • BZOJ 2329: [HNOI2011]括号修复 Splay2020-01-07 21:02:21

    code: #include <cstdio> #include <map> #include <vector> #include <cstring> #include <string> #include <algorithm> #define N 100007 #define ll long long #define lson s[x].ch[0] #define rson s[x].ch[1]

  • [JSOI2008]火星人 - Splay + 哈希2020-01-02 22:04:32

    Description 维护一个字符串,支持插入字符,修改字符,以及求两个后缀的\(lcp\)。 Solution 建立一棵\(Splay\)来维护整个串,每个节点维护整个子树的哈希值。对于插入,直接在对应的位置插入;修改也直接修改就好;然后一路\(update\)。对于查询,考虑二分,然后每次查询对应区间的哈希值,\(O(1)\)

  • LCT总结2019-12-22 09:03:13

    LCT:link-cut-tree 先粘个板子(可能理解深刻?) #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int read() { int aa=0,bb=1;char cc=getchar(); while(cc>'9'||cc<'0')

  • poj 3580 SuperMemo (splay模板)2019-12-09 23:52:52

    题意: 给出一个数字序列,有6种操作: (1) ADD x y d: 第x个数到第y个数加d 。 (2) REVERSE x y : 将区间[x,y]中的数翻转 。 (3) REVOLVE x y t :将区间[x,y]旋转t次。 (4) INSERT x p :在第x个数后面插入p 。 (5)DELETE x :删除第x个数 。 (6) MIN x y : 查询区间[x,y]中的最小值 。 思路:splay板子题,对

  • 动态树(LCT、Top Tree、ETT)2019-12-03 21:02:43

    LCT LCT是一种维护森林的数据结构,本质是用Splay维护实链剖分。 实链剖分大概是这样的:每个节点往一个儿子连实边,其它的儿子连虚边。 而我们用Splay维护实链剖分后的每一条实链。 因此LCT有一些基本的性质: \(1.\)每一棵Splay维护树上一条直上直下的实链,且其中序遍历的点的序列的深

  • GERALD07加强版题解2019-09-23 18:04:07

    题目描述:   N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数。 输入格式:   第一行四个整数N、M、K、type,代表点数、边数、询问数以及询问是否加密。 接下来M行,代表图中的每条边。 接下来K行,每行两个整数L、R代表一组询问。对于type=0的测试点,读入的L和R

  • 【ZJOI2006】书架 - Splay2019-09-20 11:05:25

    题目链接 洛谷P2596 题目描述 现在书架从上到下摆了n本书,编号1-n,要求维护一个数据结构来支持下面5个操作 Top S 把编号为s的书放到顶部 Bottom S把编号为s的书放到底部 Insert S T如果编号为S的书上面有x本,那么把这本书放在一个位置使得它上面有X+T本书,保证T∈{−1,0,1}T

  • BZOJ 1208 宠物收养所(set 或者 splay)2019-09-08 14:55:23

    Description 最近,阿Q开了一间宠物收养所。收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而他也给每个处在

  • [bzoj1103][POI2007]大都市meg2019-09-01 19:52:38

    题目链接 这道题用来理解LCT还是蛮不错的,如果是笨重的LCT完全体就会在洛谷上卡常T掉第4组,但是这道题明显可以省略掉很多多余操作。 我们先看看如果按照正常的LCT,会有这样一些操作: inline void makeroot(register int x) { access(x); splay(x); pushr(x);}inline void split(

  • 伸展树(Splay Tree)2019-08-29 16:56:11

    一种二分查找树 大多数操作有O(logN)的时间复杂度,但有时很慢 // O(N) 可以快速访问最近访问过的元素(这个结构的核心就是缓存) 每次查找之后将已找到的元素旋到树根部,旋转情况分为Zig-zag(3弯)、Zig-zig(3直)、Zig(2)  

  • Bzoj3786: 星系探索——Splay2019-08-16 23:57:21

    题面    Bzoj3786 解析    上课讲稿上的例题   这道题是套路题,是括号序的应用,进入节点时打上$+1$标记, 退出时打上$-1$标记,这个是作为点权的系数  先看操作2, 需要更改父节点,就是把一段区间提取出来,插入另一个地方,显然可以用Splay维护,先提取区间,再把新父亲的$+1$点旋转至

  • 学习——我用Splay打排序2019-08-16 19:03:34

    Splay 学习——我用Splay打排序 Description 给出N个数,你的任务就是把这n个数从小到大排序^_^ Input 第一行一个整数,N(1<=n<=200000),表示有N个数 接下来有N行,每行一个数 Output 输出N行,表示已经排序的N个数 Sample Input 5 2 3 1 4 5 Sample Output 1 2 3 4 5 这一题

  • splay(luoguP3391)2019-08-04 20:00:30

    题目链接:https://www.luogu.org/problem/P3391 思路:splay模板题 #include <cstdio> #include <cstdlib> #include <cstring> #include <bitset> #include <cmath> #include <cctype> #include <unordered_map> #include <iostream>

  • P3391 【模板】文艺平衡树(Splay) 平衡树2019-08-04 14:01:10

       题目背景 这是一道经典的Splay模板题——文艺平衡树。 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 输入格式 第一行为n,m n表示初始序列有n个数,这个

  • P3369 【模板】普通平衡树 (splay)2019-07-28 23:52:30

    splay支持查询 1.第k大 2.第k大是谁 3.数的前驱 4.数的后继 5.添加删除   #include <bits/stdc++.h>using namespace std;int rt, cnt;int ch[100005][2]; //左右儿子int fa[100005]; //父节点int sz[100005]; //字树和int cn[100005]; //当前点出现了多少

  • [BZOJ3786] 星系探索(括号序列+Splay)2019-07-27 11:02:14

    3786: 星系探索Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 2191  Solved: 644[Submit][Status][Discuss] Description 物理学家小C的研究正遇到某个瓶颈。 他正在研究的是一个星系,这个星系中有n个星球,其中有一个主星球(方便起见我们默认其为1号星球),其余的所有星

  • LCT2019-07-25 19:04:21

    如果是学习的话,可以看一下这篇博客 LCT有一点类似于树链剖分,只不过是实链和虚链,然后可以不断变化。每一条实链用一个splay(深度为关键字)维护,splay还原出来就应该是一条由浅到深的链。 Splay的根的father是原树中链顶的父节点。特别的,原树根所在的Splay根节点的father为空。 而且spla

  • splay文艺平衡树2019-07-24 20:04:40

    模板题传送 就是简单的区间翻转操作,打标记就好。代码易懂 #include<bits/stdc++.h>#define INF 2100000001#define N 100003using namespace std;int read(){ int x=0,f=1;char s=getchar(); while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();} w

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有