fhq Treap
ModestCoder_
一个modest的coder
展开
-
[题解]LuoGu4146:序列终结者
原题传送门序列终结者,用它来终结我这一阶段SplaySplaySplay的练习再好不过了。。三个操作,区间加,区间翻转,区间最值最近以Splay为核心,看到翻转就想到用Splay,加和翻转用懒标记可以解决,同时可以维护一个最值,由pushup来更新size和mx(区间最值数组)Code:#include <iostream> #include <cstdio>...原创 2019-06-02 13:01:50 · 346 阅读 · 0 评论 -
[题解]LuoGu2343:宝石管理系统
原题传送门一眼树状数组水过,然后发现可以用splaysplaysplay就来练手啦十分基本的insert与kth操作然后因为查询的是第k大,所以我改了一下kth本来是先跟左儿子的size比较,现在我先跟右儿子的size比较因为“左中右”的遍历出来结果是从小到大的那么我“右中左”出来就是从大到小的Code:#include <bits/stdc++.h>#defin...原创 2019-05-21 18:59:49 · 255 阅读 · 0 评论 -
[题解]LuoGu2073:送花
原题传送门可以用来练手splay需要以下:insert(x)insert(x)insert(x):往下跑,若跑到空点,新开一个;若有重复,returnMin()Min()Min():找到树中最便宜的点的编号,只要一直往左儿子跑就行了Max()Max()Max():找到树中最昂贵的点的编号,只要一直往右儿子跑就行了pre()pre()pre():找前驱del(x)del(x)del(...原创 2019-05-20 21:23:13 · 317 阅读 · 0 评论 -
[题解]LuoGu2234:[HNOI2002]营业额统计
原题传送门法1 Splay每次insert之后,当前点已经旋到根,找到前驱后继,减一减计较,较小的那个统计到ans里码量太长弱点~~Code:#include <bits/stdc++.h>#define maxn 100010#define LL long longusing namespace std;int rt, sz, f[maxn], val[maxn],...原创 2019-06-04 18:57:10 · 310 阅读 · 0 评论 -
[题解]LuoGu1486:[NOI2004]郁闷的出纳员
原题传送门四个操作I k:插入值为k的节点A k:所有节点+kS k:所有节点-kF k:所有节点kth同时任何时刻,节点值<min时,删除节点第一眼简直线段树,标记没问题,但是本题需要动态删点,线段树无法完成需要平衡树依然标记 思想,全局开一个delta变量加减直接统计到delta里四个操作可以这样完成:I k:insert(k−delta)insert(k-...原创 2019-05-20 20:10:01 · 301 阅读 · 0 评论 -
[题解]LuoGu3644:[APIO2015]八邻旁之桥
原题传送门APIO的题目不难啊首先,家和办公室在河同侧的直接走吧需要过河的拿出来算k=1情况一座桥的话,桥肯定要建在中间(没毛病)然后家的位置和办公室的位置的话,因为在两岸,可以令起点的位置是较小的那个,便于计算然后设桥的位置为a,家和桥的位置都为xix_ixi,距离和就是abs(xi−a)abs(x_i-a)abs(xi−a)a取xix_ixi的中位数就行啦k=2情况枚...原创 2019-06-11 17:26:46 · 285 阅读 · 0 评论 -
[题解]LuoGu3466:[POI2008]KLO-Building blocks
原题传送门转化题意:选一段长度为k的连续区间,使得区间内每个数减去中位数的差的绝对值之和最小当然是枚举区间啦,然后O(logn)O(logn)O(logn)求出当前区间每个数减去中位数的差的绝对值之和工具?fhq Treap! pushup里面加维护一个sum就好啦Code:#include <bits/stdc++.h>#define maxn 100010#defi...原创 2019-06-11 19:24:32 · 256 阅读 · 0 评论 -
[学习笔记]fhq Treap
1、引入前置知识:堆(不需要会Treap,或者说根本不用会Treap)我发现目前用Splay的题目都可以用fhq(不排除我见识短浅的可能)主要两个特点:整棵树满足二叉搜索树性质:左儿子小于自己,右儿子大于自己整棵树满足堆的性质:每个点附带一个值keykeykey,值为随机,以key满足堆(可以默认大根堆)2、操作新开一个节点int addnode(int x){ ++s...原创 2019-06-11 21:32:34 · 391 阅读 · 1 评论