ICode9

精准搜索请尝试: 精确搜索
  • splay区间操作(bzoj1500)2019-07-24 19:54:19

    传送门 其实这道题思路还是满简单的,只是代码量和debug让人感到痛苦,但还是蛮锻炼能力的 还是说说各个操作 插入 不同普通题的是,插入是插入一段。如果一个一个插的话会很慢,我们可以先把要插入的一段建成一个平衡树,再一起插入。 删除 删除也是删除一段区间[L,R],我们可以把L-1旋转到根,R

  • 浅谈splay在区间问题中的应用2019-07-22 22:52:16

    (笔者才疏学浅,如有疏漏还请各位不吝赐教) 1.从二叉搜索树谈起 首先,二叉搜索树是满足如下性质的二叉树 这棵二叉树的每一个结点都有一个权值\(v\) 对于二叉搜索树中的每个结点,如果它有左子树,那么它的左子树中的每一个结点的权值都小于这个结点本身的权值 对于二叉搜索树中的每个结

  • P1967 货车运输2019-07-18 10:37:07

    容易发现此题中需要找到尽可能大的边来走? 那么我们求一棵最大生成树,把必要的边保留下来就行了。 之后要求两点间的最小边权? 你可以选择倍增,可以选择树剖,但我选择拉LCTLCTLCT的板子…(指针警告&封装警告&STL画风警告) 似乎理论复杂度优秀但常数巨大???(1000+ms without O2) 所以简单

  • BZOJ 3963: [WF2011]MachineWorks 斜率优化 + splay动态维护凸包2019-07-08 13:04:17

    Code:  #include<bits/stdc++.h>#define setIO(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout) #define maxn 300000 #define inf 10000000000000009 #define ll long long using namespace std;const l

  • [复习]平衡树splay2019-07-05 21:53:46

    #include<iostream>#include<cstdio>#include<cstring>#define read(a) a=init()using namespace std;struct node{ long long fa,ch[2],data,size,cnt;}t[10000003];long long n,root=0,tot=0,lei,thi;inline long long init()//快读{ long long a=0,b

  • 【LCT维护子树信息】uoj207 共价大爷游长沙2019-07-03 16:00:50

    这道题思路方面就不多讲了,主要是通过这题学一下lct维护子树信息。 lct某节点u的子树信息由其重链的一棵splay上信息和若干轻儿子子树信息合并而成。 splay是有子树结构的,可以在rotate,access的时候由儿子update到父亲,而轻儿子的信息update不上来,需要另外记一下。 记sum[x]为我们要求

  • CF809D Hitchhiking in the Baltic States2019-07-01 10:43:46

    题目描述: luogu 题解: 平衡树模拟dp? 设$dp[i]$表示当前状态下长为$i$的合法子序列最后一位的最小值。 容易发现$dp[i]<dp[i+1]$。 然后就可以$dp$了。 (当前可操作区间为$[l,r]$) 1.$dp[i-1]<l$,有$dp[i]=min(dp[i],l)$。 此时满足$dp[i-1]<l \le dp[i]$。 2.$l \le dp[i-1] < r$,有$dp[

  • Luogu P3391 【模板】文艺平衡树 Splay 平衡树2019-06-23 20:51:37

    https://www.luogu.org/problemnew/show/P3391 以前写过题解的入门题重写练板子。wdnmd真就 ' == ' 写成 ' = ' 了编译器不报错呗。 #include<bits/stdc++.h>using namespace std;const int maxn=100010;int n,m,rt=0,c[maxn][2]={},fa[maxn]={},rev[maxn]={},siz[maxn]={};inli

  • cf1172E Nauuo and ODT(LCT)2019-06-13 19:05:41

    首先可以转化问题,变为对每种颜色分别考虑不含该颜色的简单路径条数。然后把不是当前颜色的点视为白色,是当前颜色的点视为黑色,显然路径数量是每个白色连通块大小的平方和,然后题目变为:黑白两色的树,单点翻转颜色,维护白色连通块大小平方和,然后根据Auuan大佬的题解,我用了LCT。就是对每个

  • Splay树详解2019-06-12 19:00:37

    更好的阅读体验 Splay树 这是一篇宏伟的巨篇 首先介绍BST,也就是所有平衡树的开始,他的China名字是二叉查找树. BST性质简介 给定一棵二叉树,每一个节点有一个权值,命名为 关键码 ,至于为什么叫这个名字,我也不知道. BST性质也就是,对于树中任何一个节点,都满足一下性质. \1. 这个

  • Splay浅谈2019-05-24 22:54:28

    Splay是众多平衡树之一,它的功能十分强大,但常数极大。在LCT和许多数据结构中都能用到。 Splay的核心操作,就是rotate。为了使树不是一条链,而是平衡的,我们需要旋转来维护形态。理论很简单,下面来看一下如何实现。 图片转自洛谷 我们注意到,旋转之后,这棵树依然保持着正常的大小关系。 来

  • [Scoi2014]方伯伯的OJ(动态开点splay)2019-05-23 14:41:21

    开始没看数据范围差点以为是这题了:https://www.cnblogs.com/hfctf0210/p/10911340.html 然后看到n<=1e8,怎么这么大? 所以这题需要用动态开点线段树或者动态开点splay,而我上面的那题写的树状数组,为了熟悉splay就用动态开点splay吧而且也不知道这题动态开点线段树怎么写。正常要开两棵

  • CodeForces 85D Sum of Medians Splay | 线段树2019-05-17 16:49:02

    Sum of Medians 题解: 对于这个题目,先想到是建立5棵Splay,然后每次更新把后面一段区间的树切下来,然后再转圈圈把切下来的树和别的树合并。 但是感觉写起来太麻烦就放弃了。   建立5棵线段树。 然后 seg[rt][i]代表的是只考虑当前所管辖的区间中的情况下, 下标对5取余之后为 i 的那些

  • [NOI 2014]魔法森林2019-05-16 14:48:14

    题目大意: 一个有\(n\)个点,\(m\)条边的无向图,每条边都另有两个权值\(a_i\)和\(b_i\),一开始有两个指数,\(A\),\(B\),如果你的\(A>=a_i,B>=b_i\)那么你就可以通过这条边,求\(A+B\)的最小值。 大体思路: \(LCT\)裸题。 注意到有两个指数,那我们肯定要先通过各种方法搞掉一个指数,再去维护另一

  • $bzoj1112-POI2008$ 砖块$Klo$ $Splay$2019-05-10 13:40:47

    题面描述 \(N\)柱砖,希望有连续\(K\)柱的高度是一样的. 你可以选择以下两个动作 从某柱砖的顶端拿一块砖出来,丢掉不要了. 从仓库中拿出一块砖,放到另一柱.仓库无限大. 现在希望用最小次数的动作完成任务. 输入格式 第一行给出\(N,K\). \((1 \leq k \leq n \leq 10^5)\) 下面

  • Luogu P3391 文艺平衡树(Splay or FHQ Treap)2019-05-06 12:39:35

    这道题要求区间反转。。。好东西。。 对于Splay:把l-1旋到根,把r+1旋到根的右儿子,这样r+1的左儿子就是整个区间了,然后对这个区间打个tg 注意要插-Inf和Inf到树里面,防止越界,坐标要+1 #include<cstdio>#include<iostream>#define R register intusing namespace std;const int N=10001

  • 平衡树合集(Treap,Splay,替罪羊,其他待更)2019-05-05 22:40:02

    今天翻了翻其他大佬的博客,发现自己有些。。。颓废。。。 有必要洗心革面,好好学习   序:正常的BST有可能退化,成为链,大大降低效率,所以有很多方法来保持左右size的平衡,本文将简单介绍Treap,Splay,替罪羊(还有一个FHQ Treap暂时没有学,待更); 另:代码都是普通平衡树 1.Treap 树堆,在数据结构中

  • bzoj 2049: [Sdoi2008]Cave 洞穴勘测 (LCT)2019-04-28 20:42:38

    链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2049 题面: 2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 11719  Solved: 5847[Submit][Status][Discuss] Description 辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为

  • luogu33912019-04-18 15:44:11

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

  • [洛谷日报第62期]Splay简易教程 (转载)2019-04-05 21:49:38

    本文发布于洛谷日报,特约作者:tiger0132 原地址 分割线下为copy的内容   [洛谷日报第62期]Splay简易教程 洛谷科技 18-10-0223:31   简介 二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。 二叉排序树或者是一棵空树,或者是具有下列性质的

  • 部落冲突2019-04-03 19:50:49

    题目链接 戳我 \(Solution\) 不详细讲了。说一下大致过程,毕竟很裸 对于开战:\(cut(p,q)\) 战争结束:\(link(p[x],q[x])\) 询问:用\(findroot(p)==findroot(q)\)判一下联通就好了 \(Code\) #include<bits/stdc++.h> #define rg register #define file(x) freopen(x".in","r",stdin);

  • Splay的初步学习2019-03-31 17:40:09

    具体是啥,qwq 有时间再补吧,贴一下代码; #include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cstring>#define MAXN 10086666using namespace std;int f[MAXN],cnt[MAXN],value[MAXN];int sons[MAXN][2],sub_size[MAXN];int ro

  • splay区间翻转2019-03-31 15:54:56

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

  • [Splay]晚练整队2019-03-07 21:42:06

    比赛结束前请不要阅读题解哦 晚练整队 Input:exercise.in Output:exercise.out 题目背景 小Z的体育非常好,因此他非常不愿意参加体育老师组织的晚练。体育老师何等聪明,他利用激将法把小Z引了下来。 体育老师思考了一段时间,考虑到小Z的体育的确已经很好了,所以他不用晚练。但是体育老

  • 【洛谷P3224】永无乡 并查集+Splay启发式合并2019-03-03 18:52:09

    题目大意:给定 N 个点的图,点有点权,初始有一些无向边,现在有 Q 个询问,每个询问支持动态增加一条无向边连接两个不连通的点和查询第 X 个点所在的联通块中权值第 K 大的是哪个点。 题解:学会了平衡树的启发式合并。 以每个点建立一棵平衡树,需要加边时则合并两个点对应的平衡树,启发式的思

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

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

ICode9版权所有