Splay
Neo__Z
这个作者很懒,什么都没留下…
展开
-
NOIP模拟 shopping【线段树 or Splay】
题目大意:有n中物品,其价值和价格分别为wi,piw_i,p_i,现有以下两种操作m个: 1 k w p:把第k个物品的价值和价格分别改为w和p; 2 k:每次买价值最大的物品中价格最低的(每种物品可无限购买),问k元最多能买到价值为多少的物品。(1<=n,m<=100000,1<=k,w,p<=1000000000)解题思路:我们可以将物品(一个修改也算一种物品)以w为第一关键字,p为第二关键原创 2017-11-07 19:54:23 · 237 阅读 · 0 评论 -
维护集合Ⅱ【Splay】
题目描述如未特别说明,以下所有数据均为整数。维护一个多重集 S ,初始为空,有以下几种操作:插入元素 x 。删除元素 x ,保证删除的元素一定存在。输出 S 中相差最小的两个元素的差,保证此时|S|≥2 。 操作共 n 次 。输入格式第一行一个整数 n (1≤n≤3×10^5),表示共有 n 次操作。 接下来 n 行,每行为以下几种格式之一: 0 x ,把 x(0≤x≤10^9 )加入原创 2017-11-08 16:18:43 · 370 阅读 · 0 评论 -
bzoj2391: Cirno的忧郁【三角剖分+Splay】
解题思路:我们先把所有点极角排序,固定点价值视为0,预处理出sum[i][j]表示极点O到点i(固定点)和极点到点j(固定点)所圈成的三角形内的青蛙价值,逆时针为正,顺时针为负,那对于一次询问,只需要像求多边形面积一样把相邻两点的sum加起来即可。那如何预处理出sum[i][j]呢?我们可以枚举i并以Oi为初始抽,逆时针加入j点,算出向量Oi与向量ij的cos值,若之前加入的一个点k在三角形Oij内原创 2017-11-25 16:25:37 · 512 阅读 · 1 评论 -
codevs 1743 反转卡片【Splay区间翻转】
解题思路:就是Splay的区间翻转操作。 加入两个虚拟节点0,n+1。 每次操作把0旋到root,k+1旋到son[root][1],那么son[son[root][1][0]这棵子树即是区间[1,k]了,打上翻转标记即可。#include<bits/stdc++.h>#define ll long longusing namespace std;int getint(){ int原创 2017-12-19 10:04:43 · 340 阅读 · 0 评论 -
hdu4942 Game on S♂play【线段树 or LCT】
题目大意:给一棵二叉树,每个点有权值,定义每个点的size为其子树的权值和,每个点的有趣值为其子树内size值之积。要求支持左旋右旋操作(就像splay上一样),或是询问某个点的有趣值。解题思路:1.先说一下LCT的做法: 注意到每次旋转只会改变两个点(x,y)的size值,然后改变其父亲的有趣值(除以原来y的有趣值,乘以x新的有趣值),所以可以用LCT模拟旋转操作及维护每个点的原创 2017-12-30 13:12:13 · 303 阅读 · 0 评论 -
bzoj3196 二逼平衡树【线段树套Splay】
解题思路:其实线段树套线段树就可做,所以叫二逼平衡树。 不过还没写过线段树套Splay,所以练一下也是好的。 首先我们把平衡树中相同的值放在一个节点里,记个cnt,方便操作。操作1:只用去线段树上logn颗平衡树上找比k小的个数即可,最后记得加一。操作2:二分答案,再用操作一去检验,这就是线段树套Splay二逼之处,要O(log3n)O(log^3n) ,要是线段树套线段树就不用二原创 2017-12-19 08:29:34 · 276 阅读 · 0 评论 -
bzoj3595: [Scoi2014]方伯伯的Oj【splay+map】
Description方伯伯正在做他的Oj。现在他在处理Oj上的用户排名问题。 Oj上注册了n个用户,编号为1~”,一开始他们按照编号排名。方伯伯会按照心情对这些用户做以下四种操作,修改用户的排名和编号: 1.操作格式为1 x y,意味着将编号为z的用户编号改为V,而排名不变,执行完该操作后需要输出该用户在队列中的位置,数据保证x必然出现在队列中,同时1,是一个当前不在排名中的编号。 2原创 2018-02-02 15:32:17 · 492 阅读 · 0 评论 -
bzoj3729: Gty的游戏【博弈论+splay】
Description某一天gty在与他的妹子玩游戏。 妹子提出一个游戏,给定一棵有根树,每个节点有一些石子,每次可以将不多于L的石子移动到父节点,询问 将某个节点的子树中的石子移动到这个节点先手是否有必胜策略。 gty很快计算出了策略。 但gty的妹子十分机智,她决定修改某个节点的石子或加入某个新节点。 gty不忍心打击妹子,所以他将这个问题交给了你。 另外由于gty十分绅士,所...原创 2018-04-08 14:57:50 · 190 阅读 · 0 评论