几道splay
hdu 1890
题意:每次将第i位到第i小数字所在的位置之间的位置翻转,每次输出第i小数字所在的位置
分析:
简单的splay处理区间翻转问题
有三点需要注意:
1、区间是1~n+2
2、此题里的查找有两种,一种是知道点的编号,将这个点splay,还有一种是需要将第x位置的点splay(也就是splay里排名x的点),需要区分这两者
3、splay前需要先从root开始下放(这里针对此题的特殊查找,即知道点编号的情况,不能直接splay(index,0))
hdu 3436
题意:初始1~n(n<=1e8),然后有三个操作
TOP x:将数x拿到最前面
Query x:查找数x现在所在位置
Rank x:输出现在第x个位置的数
分析:
如果n是正常范围,那么就是个很简单的splay,1e8的话肯定是离散,那么怎么离散呢?
挑出所有TOP和Query操作的点,将两个点之间的区间缩点(记录下起点和长度保存下来)
那么对于所有操作,这些操作内部的顺序并不改变,并且Rank也能由此查到
PS:将Rank操作的点也离散是没有意义的,因为Rank x这个x并不是对应准确的点的编号,是变动的
hdu 3726(平衡树的启发式合并)
题意:对于一个给定的无向图,有三个操作
1、删除一条边
2、将一个点权值改掉
3、询问一个点所在的联通块中权值第k大的权值(包括自身)
分析:先离线
对于每个集合,维护一个平衡树,那么问题就涉及到两个平衡树的合并
容易想到让小的平衡树合并到大的平衡树上,可以证明这样复杂度是O(nlog^2n)的
对于splay,其实有更好的启发式合并,那就是对于小数所在的平衡树,先遍历一边得到顺序,再按照这样的顺序插入到大树中,可以证明这样启发式合并的复杂度是O(nlogn)的
这里的实现可以set(挺方便)、treap、splay(很快)
几道splay的更多相关文章
- Bzoj1208 [HNOI2004]宠物收养所
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 7457 Solved: 2960 Description 最近,阿Q开了一间宠物收养所.收养所提供两 ...
- [jzoj]4216.【NOIP2015模拟9.12】平方和
Link https://jzoj.net/senior/#main/show/4216 Description 给出一个N个整数构成的序列,有M次操作,每次操作有一下三种: ①Insert Y X, ...
- 【BZOJ】【1014】【JLOI2008】火星人prefix
Splay/二分/Hash 看了网上的题目关键字(都不用点进去看……我也是醉了)了解到做法= =那就上呗,前面做了好几道Splay的题就是为了练手搞这个的. Hash判断字符串是否相同应该很好理解吧? ...
- 小Q与内存
Portal --> broken qwq Description (这个描述好像怎么都精简不起来啊qwq) 大概是说你的计算机有1GB的物理内存,按照Byte寻址,其物理地址空间为\(0\si ...
- 【splay】文艺平衡树 BZOJ 3223
Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 ...
- HDU 1754区间最值 & SPLAY
真是亲切的1754啊..第一道傻逼版的线段树做的是这个,后来学了zkw做的是这个,在后来决定打lrj线段树又打了一遍,如今再用splay和老朋友见面 从上到下依次为:加了读入优化的splay,sp ...
- [Splay伸展树]splay树入门级教程
首先声明,本教程的对象是完全没有接触过splay的OIer,大牛请右上角.. 首先引入一下splay的概念,他的中文名是伸展树,意思差不多就是可以随意翻转的二叉树 PS:百度百科中伸展树读作:BoGa ...
- 第二棵树:Splay
Splay这东西神难打--什么都没动板子敲上就直逼200行了,而且非常难记(仿佛是模板长的必然结果).但是为什么还要学呢?据说是因为它可以实现区间操作.但是自从我得知无旋Treap也能做到这些,默默对 ...
- splay详解(二)
前言 在上一节中,我们讲述了Splay的核心操作rotate与splay 本节我会教大家如何用这两个函数实现各种强大的功能 为了方便讲解,我们拿这道题做例题来慢慢分析 利用splay实现各种功能 首先 ...
随机推荐
- Codefoces 828C
C. String Reconstruction time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- Android 性能优化(5)网络优化 (1) Collecting Network Traffic Data 用Network Traffic tool :收集传输数据
Collecting Network Traffic Data 1.This lesson teaches you to Tag Network Requests 标记网络类型 Configure a ...
- rman 问题
1. RMAN Repeatedly Fail To Backup Archivelogs with RMAN-20242 Cause: There is a mis-match between th ...
- Linux用户、用户组权限管理详解
Linux用户管理三个重要文件详解: Linux登陆需要用户名.密码./etc/passwd 文件保存用户名.登录Linux时,Linux 先查找 /etc/passwd 文件中是否有这个用户名,没有 ...
- 264 Ugly Number II 丑数 II
编写程序找第 n 个丑数.丑数就是只包含质因子 2, 3, 5 的正整数.例如, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 就是前10个丑数.注意:1. 1 一般也被当做丑数2. ...
- sql Server与ORACLE的语法区别 自用整理!
/*整理背景201403订单中心数据库迁移(整理Oracle与SQL的差异)整理规则第一句为SQL Server 第二句为Oracle*/--数据类型int integervarchar varcha ...
- microPython 的逗比报错的问题
今天搞了一天,发现了各种问题,首先最终的解决办法就是重现刷固件!!!! 重刷固件就需要清除flash! cd C:\Users\sansong\AppData\Local\Programs\Pytho ...
- 生成100个Div
<!doctype html><html><head><meta charset="utf-8"><title>无标题文 ...
- 业余开发Android App的架构演变
闲暇之余,开发了一款休闲类app,虽然用户量不多,但确实花了不少心血在这上面.然而,开发出来的结果,与之前想好的架构,还是有不少区别. 下面,记录下这款app架构的演变: 最初,只想写个app,能与机 ...
- jboss项目设置域名
1.在jboss-web.xml中添加<virtual-host>www.ceshi.com</virtual-host> <jboss-web> <cont ...