
Splay
文章平均质量分 81
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 1492 货币兑换 Cash 平衡树维护凸包 CDQ分治
题目大意:这题真是为难了我1B。。。做了三天,两种方法都试过了一遍,真是膜拜NOI的神犇们能在一个多小时内干掉这道题首先这题一看就是斜率优化 连递推式都是P=A[i]*X[i]+B[i]*Y[i] 万事俱备 就是AB不单调!斜率不单调其实也好办 反正是凸包 平衡树维护不就简单了简单个熊啊!!!第一天下午开始写,第二天早上还在调,下午才AC,写了足足5原创 2014-08-27 18:46:08 · 4186 阅读 · 3 评论 -
BZOJ 3786 星系探索 DFS序+Splay
题目大意:给定一棵有根树,提供下列操作:1.询问某个点到根路径上的点权和2.修改某个点的父亲,保证修改之后仍然是一棵树3.将某个点所在子树的所有点权加上一个值子树修改,LCT明显是搞不了了,在想究竟会不会有人去写自适应Top-Tree……首先我们DFS搞出这棵树的入栈出栈序 然后入栈为正出栈为负那么一个点到根的路径上的点权和就是从根节点的入栈位置到这个点的入栈位置的和子原创 2014-12-01 16:37:03 · 3980 阅读 · 0 评论 -
BZOJ 1251 序列终结者 Splay
题目大意:维护一种数据结构,支持下列操作:1.将一个区间加上一个数2.将一个区间翻转3.询问一段区间的最大值Splay裸题 OTZ题干……#include #include #include #include #define M 50500using namespace std;struct abcd{ abcd *ls,*rs,*fa; int num,max原创 2014-11-15 19:51:18 · 2054 阅读 · 0 评论 -
BZOJ 1014 JSOI2008 火星人prefix Splay+Hash+二分
题目大意:给定一个字符串,提供下列操作:1.查询从x开始的后缀和从y开始的后缀的最长公共前缀长度2.将x位置的字符修改为y3.在x位置的字符后面插入字符y看到这题一开始我先懵住了。。。这啥。。我第一时间想到的是后缀数据结构 但是不会写 而且后缀数据结构也不支持修改操作后来无奈找了题解才知道是Hash+二分。。。 太强大了 Hash+二分打爆一切啊用Splay维护这个字符串的原创 2014-10-03 11:42:04 · 2720 阅读 · 0 评论 -
BZOJ 1269 文本编辑器 Splay
题目大意:维护一个文本编辑器,支持下列操作:1.将光标移动到某一位置2.在光标后插入一段字符串3.删除光标后的一段字符4.翻转光标后的一段字符5.输出光标后的一个字符6.光标--7.光标++Splay中比较水的一道题,标记只有区间翻转,也不用维护区间总值,唯独需要注意的就是插入的时候fa要记得赋值,不然就会像本蒟蒻一样调半天,,,这题要注意的是Insert操作的原创 2014-10-01 21:20:47 · 2214 阅读 · 0 评论 -
BZOJ 1861 ZJOI2006 Book 书架 Splay
题目大意:……自己看懒得打了很裸的Splay 首先开一个指针数组记录每个值代表的节点 然后就能找到某本书在序列中的什么位置了总感觉这题可以不用Splay的说……一定是我的错觉#include #include #include #include #define M 80800using namespace std;struct abcd{ abcd *fa,*ls,*rs原创 2014-11-11 19:59:51 · 1674 阅读 · 0 评论 -
BZOJ 2329 HNOI2011 括号修复 Splay
ああああああああああああああ——散弾铳とテレキャスター 言叶の整列、アンハッピー 単身、都会の町并み 撃ち込んだ音、嫌いですか? 题目大意:给定一个括号序列,提供四种操作:1.将一段区间内的所有括号的变成'('或者')'2.将一段区间反转3.将一段区间内的所有括号翻转,即'('变成‘)',')'变成'('4.查询一段区间内要将至少多少个括号翻转才能变成一个合法的括号序列原创 2014-09-19 18:12:29 · 1947 阅读 · 0 评论 -
BZOJ 1500 NOI2005 维修数列 Splay
我尽力了。。。从之前的递归版Splay变成非递归,然后各种删除冗余的操作,除了蛋疼的读入优化基本已经精简到底了,连传参都省了-0- 刚交上去是10956MS,差4MS就是BZOJ倒数第一,改完了是9244MS,快了一秒。。。单点测还是死活过不去,等加上读入优化再说吧题目大意:维护一个序列,支持六种操作:1.在某个数后面插入一些数字2.删除从某个数开始的一些数字3.把从某个数开始的一原创 2014-09-18 19:50:39 · 1866 阅读 · 0 评论 -
POJ 3580 SuperMemo Splay
题目大意:维护一个序列,提供一些操作:1.将一个区间加上一个值2.翻转一个区间3.将一个区间内的数字旋转T次(每次旋转区间内每个元素向右移一位,最右一个移动到最左面去)4.在一个元素后面插入一个数5.删除某个元素6.查询区间最小值写过BZOJ那几道Splay之后这题就变得非常水了。。。只是有几个要点需要注意:1.操作3的T可能大于区间长度 还可能是负的 所以一定要取原创 2014-09-22 13:24:39 · 1499 阅读 · 0 评论 -
BZOJ 1493 NOI2007 项链工厂 Splay
题目大意:维护一个环,每个点有一个颜色,提供6种操作:1.将这个环顺时针旋转k2.沿点1所在直径翻转3.将两个珠子互换4.将一段区间染色5.查询这个环上有多少颜色段6.查询一段区间有多少颜色段关于颜色段通用的处理方法是每个区间记录三个值,颜色段数、左端点颜色、右端点颜色,合并时颜色段数相加,如果左区间右端点和右区间左端点颜色相同则减一然后用Splay维护区间即可 不原创 2014-09-20 11:27:43 · 1990 阅读 · 1 评论 -
BZOJ 2258 pku2758 Checking the Text 文本校对 Splay+Hash
题目大意:给定一个字符串,多次插入一个字符和询问某两个后缀的LCPSplay+Hash。同1014这逗比的询问。。。。。。#include #include #include #include #define M 50500#define BASE 151using namespace std;typedef unsigned long long ll;struct a原创 2015-01-22 10:52:31 · 1682 阅读 · 0 评论