![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Splay
fyc_kabuto
一个蒟蒻程序员
展开
-
1056: [HAOI2008]排名系统&1862: [Zjoi2006]GameZ游戏排名系统&codevs 1985
要求打一个数据结构,支持单点修改,单点排名查询,区间排名查询。 Splay模板题。 可以多加两个节点在两边,开个数组记录玩家在Splay上的位置。 然而bzoj卡cin,又懒,不想打哈希,于是愉快的精神AC了。 可以交codevs:http://codevs.cn/problem/1985/ 手贱错误: del操作while(tr[p].son[1]!=0) p=tr[p].s原创 2017-07-07 08:23:22 · 405 阅读 · 0 评论 -
bzoj 2827: 千山鸟飞绝
题意:乱七八糟。题解:坐标没卵用,直接map掉就好。 然后对每一个位置开一个splay,直接删点,加点。标记一下。 最后输出的时候都splay下就好了。 细节略多需小心。 code:#include<cstdio> #include<cstring> #include<iostream> #include<cstdlib> #include<map> #include<algorithm>原创 2017-09-18 16:56:54 · 569 阅读 · 0 评论 -
3196: Tyvj 1730 二逼平衡树
题目比较简洁: 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 1.查询k在区间内的排名 2.查询区间内排名为k的值 3.修改某一位值上的数值 4.查询k在区间内的前驱(前驱定义为小于x,且最大的数) 5.查询k在区间内的后继(后继定义为大于x,且最小的数) 又有区间,又有排名,所以明显是树套树了,反正我写了区间线段树套平衡树。 相当于在每个原创 2017-07-13 07:58:08 · 222 阅读 · 0 评论 -
bzoj 1208: [HNOI2004]宠物收养所
splay原创 2017-12-26 16:32:32 · 167 阅读 · 0 评论 -
bzoj 1014: [JSOI2008]火星人prefix
splay+hash+二分原创 2018-01-01 19:14:24 · 236 阅读 · 0 评论 -
bzoj 1251: 序列终结者
题意: 写一个数据结构,支持区间加,区间翻转,求区间最大值。 题解: splay裸题不解释,拿来练手。 这么就没写居然能一次过编译+1A也是很感动。 code: #include<cstdio> #include<cstdlib> #include<iostream> #include<cstring> #define LL lo...原创 2018-03-19 17:05:42 · 211 阅读 · 0 评论 -
codechef TASUFFIX
题意: 设数组 A[i] = i,大小为 n,对其进行 m 次操作,有两种操作: 1. 把某一段提到开头 2. 区间翻转 所有操作结束后询问后缀数组的 rank sa数组为 A 的字符串 S有多少种可能 S 的限制是字符串中出现的都是正整数,且最大元素等于不同的元素个数 n≤109,m≤105n≤109,m≤105n ≤ 10^9, m ≤ 10^5 题解: 先吐槽,这题调了几天...原创 2018-04-10 10:46:33 · 218 阅读 · 0 评论