平衡树
文章平均质量分 72
QTY_
衡中信奥的渣
愿追求卓越,不断前行;只为爱&梦想,不曾停怯
展开
-
set用法
考试中用set(c++自带的封装起来的红黑树)可以轻松水过平衡树,xiaolyehengaov原创 2017-08-02 06:26:23 · 603 阅读 · 0 评论 -
平衡树+并查集 string
题干去内网找。。 开始读错题了,只要所有的操作都完成后与之前的无区别就好了。 这个反转用无旋treap(splay都行)搞一下,dfs出最后的序列。 然后,初始序列和最终序列的同一位上为同一个字母。考虑两种情况 1.两个‘?’,用并查集搞进一个联通块即可。 2.一个字母,一个‘?’。那这个?所在联通块里所有?都得是那个字母。 把这里处理完了之后就是要去处理第k大。 只有剩下不多的联通块原创 2017-10-03 11:25:38 · 336 阅读 · 0 评论 -
set so 就
问题 B: 就时间限制: 1 Sec 内存限制: 512 MB题目描述就so.in/.out【背景描述】一排 N 个数, 第 i 个数是 Ai , 你要找出 K 个不相邻的数, 使得他们的和最大。请求出这个最大和。【输入格式】第一行两个整数 N 和 K。接下来一行 N 个整数, 第 i 个整数表示 Ai 。【输出格式】一行一个整数表示最大和,原创 2017-08-07 17:42:30 · 544 阅读 · 0 评论 -
线段树+平衡树(STL) 勤快的love 枫
问题 C: 勤快的love 枫时间限制: 1 Sec 内存限制: 128 MB题目描述小绝恋love 枫是一个出纳,经常需要做一些统计报表的工作。今天是绝恋love 枫的生日,小绝恋love 枫希望可以帮爸爸分担一些工作,作为他的生日礼物之一。经过仔细观察,小绝恋love 枫发现统计一张报表实际上是维护一个非负整数数列,并且进行一些查询操作。在最开始的时候,有一个长度为N原创 2017-08-01 21:38:51 · 374 阅读 · 0 评论 -
线段树+平衡树 beautiful
关于每个值求它的beauty,至多N^2*log(N)的效率,查询一棵线段树搞定。 那么难点在于求beauty。既然要求一个不断插值的中位数,考虑用平衡树,N^2枚举每一个区间(严格说不是每一个)找中位数。普通treap很轻松。 那我介绍一种神奇的而且能用set的做法,先膜拜神犇whm。 对于每个区间的起点,值有一个,然后不断向后推,每次加二,——可以利用这个性原创 2017-08-09 20:45:37 · 380 阅读 · 0 评论 -
set+链表 【POJ Challenge】生日礼物
2288: 【POJ Challenge】生日礼物Time Limit: 10 Sec Memory Limit: 128 MB Submit: 841 Solved: 255 [Submit][Status][Discuss] Description ftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列 A1, A2, …, AN. 她被允许选择不超过 M 个连续的原创 2017-09-20 18:05:22 · 287 阅读 · 0 评论 -
乱搞+STL平衡树 序列
考虑两种情况:1,q=1;2,q>1;O(N)枚举一遍即可。可以发现最长不会超过log。那么枚举起点的效率为N*logN?暴力可过?(其实这就是正解。。)只要枚举a[i]和a[i+1],算出最小公比。这里设k=a[i]/a[i+1] (假设a[i]>a[i+1])k=p1^x1*p2^x2…..。求出g=gcd(x1,x2….);最小q=p1^(x1/g)*p2^(x2/g)…..。 其实,已原创 2017-09-28 19:51:22 · 422 阅读 · 0 评论 -
HASH+平衡树 [JSOI2008]火星人prefix
问题 I: [JSOI2008]火星人prefix 时间限制: 2 Sec 内存限制: 162 MB 题目描述 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀。比方说,有这样一个字符串:madamimadam, 我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 7 8 9 10 11 字符 m a d a m i m a d a m 现在, 火星人定义了一个函数原创 2017-09-28 19:39:09 · 307 阅读 · 0 评论 -
无旋treap启发式搜索 [HNOI2012]永无乡
问题 B: [HNOI2012]永无乡 时间限制: 1 Sec 内存限制: 128 MB 提交: 50 解决: 28 [提交][状态][讨论版] 题目描述 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛 到达另一个岛。如果从岛 a 出发经过若干座(含原创 2017-09-24 19:43:55 · 387 阅读 · 0 评论 -
无旋Treap
想要搞带区间的平衡树,要么用splay,要么用无旋treap。(现在只会后面的) 先%一下大佬LadyLex 无旋treap简言之不再有左旋和右旋,而多了拆分子树和合并子树的过程。 slipt为拆树。D 为定义的pair,first是拆下来的树,second是拆下来后剩下的原树。 如果要拆下来的树的大小比左子树小,就拆左子树,并把拆完的树接回来。原创 2017-08-03 11:14:33 · 1346 阅读 · 0 评论 -
treap 普通平衡树
普通treap中最普通的板子(数组版) #include#include#include#include#include#define inf 10000000using namespace std;struct tree{ int l,r,size,tot,h,rd;} t[100005];int n,root,fro,bac,hh;void l_swap(原创 2017-08-03 12:03:45 · 229 阅读 · 0 评论 -
无旋treap 文艺平衡树
因为需要用到区间修改,所以该用splay(尚未填坑)或者无旋treap(刚刚填上) 最开始的建树用到了建笛卡尔树的方法,把id大于当前点的点不断出栈,又因为这道题的点是按序入栈的,所以当它无法让更多点出栈时,他就是栈首的右子树,而最后一个出栈的点,就是当前点的左子树。显然root=zhan[1]。 #include#include#include#include#in原创 2017-08-03 12:05:06 · 668 阅读 · 0 评论 -
平衡树 Number
问题 B: Number时间限制: 1 Sec 内存限制: 256 MB题目描述一个排列,求出了 a 数组,其中 ai 表示第 i 个数左边有多少个数比它小计算出原来的排列输入第一行输入 n 接下来 n - 1 个整数 ai,下标从 2 开始输出输出 n 个整数表示原排列样例输入51210样例输出24531提示原创 2017-08-08 20:16:15 · 306 阅读 · 0 评论 -
线段树 乌鸦喝水
问题 B: 乌鸦喝水 时间限制: 2 Sec 内存限制: 128 MB 题目描述 【题目背景】 一只乌鸦在自娱自乐,它在面前放了n个有魔力的水缸,水缸里装有无限的水。 【题目描述】 他准备从第1个水缸飞到第n个水缸,共m次。在飞过一个水缸的过程中,如果他能够得着水缸里的水,即水缸口到水面距离小于等于乌鸦能够得着的深度,那它就会喝水缸里的水。每喝一次水,所有水缸里的水位都原创 2017-10-12 20:40:04 · 499 阅读 · 0 评论