随笔分类 -  1.1**中级数据结构

[HDU4585]Shaolin
摘要:Problem 问你一个数的前驱和后继 Solution Treap模板题 Notice 注意输出那个人的编号 Code C++ include include include include include include using namespace std; define sqz main 阅读全文
posted @ 2017-10-10 00:40 WizardCowboy 阅读(140) 评论(0) 推荐(0)
[HDU3726]Graph and Queries
摘要:Problem 给你一张图,点的权值,边和几个操作: D x: 删除第x条边 Q x y: 询问包含x的联通块中权值第y大的权值 C x y: 将x这个点的权值改为y Solution 一看就要离线处理,把所有操作都倒过来 然后删除操作变为加边操作 Notice 记得: 是改完以后再把点一个一个加入 阅读全文
posted @ 2017-10-10 00:37 WizardCowboy 阅读(144) 评论(0) 推荐(0)
[BZOJ3224]普通平衡树
摘要:Problem 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名为x的数 5. 求x的前驱(前驱定义为小于x,且最大的数) 6. 阅读全文
posted @ 2017-10-10 00:13 WizardCowboy 阅读(150) 评论(0) 推荐(0)
[BZOJ3173]最长上升子序列
摘要:Problem 给你n个数A1~An,每次将i插入第Ai位后,最后输出每次插入后这个数列的最长上升子序列 Solution 这道题非常的妙。首先如果新加入的这个数构成了最长上升子序列,由于在它插入之前都是比它小的数,所以就是最后这个序列这个位置的最长上升子序列。 如果不是最长的,只需要和前面那个数插 阅读全文
posted @ 2017-10-10 00:04 WizardCowboy 阅读(178) 评论(0) 推荐(0)
[POJ2985]The k-th Largest Group
摘要:Problem 刚开始,每个数一个块。 有两个操作:0 x y 合并x,y所在的块 1 x 查询第x大的块 Solution 用并查集合并时,把原来的大小删去,加上两个块的大小和。 Notice 非旋转Treap一直错。。。 Code 旋转Treap(非旋转Treap总是TLE...) C++ in 阅读全文
posted @ 2017-10-09 23:49 WizardCowboy 阅读(171) 评论(0) 推荐(0)
[POJ2761]Feed the dogs
摘要:Problem 查询区间第k大,但保证区间不互相包含(可以相交) Solution 只需要对每个区间左端点进行排序,那它们的右端点必定单调递增,不然会出现区间包含的情况。 所以我们暴力对下一个区间加上这个区间没有的点,删去下个区间没有的点。 因为每个点最多被加入,删除1次,所以时间复杂度为O(nlo 阅读全文
posted @ 2017-10-09 23:41 WizardCowboy 阅读(159) 评论(0) 推荐(0)
[POJ1442]Black Box
摘要:Problem 有添加操作和询问操作,每次询问输出第i大的数。 Solution Treap标准模板题 Notice 非旋转的真心难打。 Code 非旋转Treap C++ include include include include include using namespace std; de 阅读全文
posted @ 2017-10-09 23:29 WizardCowboy 阅读(125) 评论(0) 推荐(0)
[HDU3487]Play with Chain
摘要:Problem 有n个数,为1~n。有两种操作: Cut x y z: 把x到y的区间切割下来后,放到改变后的序列的z位后 Flip x y: 把x到y的区间翻转 Solution splay模板题 Notice 注意0 Code C++ include include include includ 阅读全文
posted @ 2017-10-06 13:09 WizardCowboy 阅读(186) 评论(0) 推荐(0)
[HDU3436]Queue-jumpers
摘要:Problem 有一个数列,从1排列到n,然后有Q个操作 1. Top x:将第x个数放到序列的最前面 2. Query x:询问x这个数在第几位 3. Rank x:询问第x位数是什么 Solution n非常的大,需要离散化:读入的Query操作和Top操作需要离散化 然后每当处理一个数时,用二 阅读全文
posted @ 2017-10-06 12:54 WizardCowboy 阅读(176) 评论(0) 推荐(0)
[HDU2475]Box
摘要:Problem 先告诉你每个盒子在哪个盒子的内部 接下来有M个操作: 可以把一个盒子及里面的盒子移到另外一个盒子的内部 或者询问你某个盒子最外面的盒子是哪个 Solution 首先可以建成一个图,然后先dfs一遍,用dfs序加入多棵splay 然后移动操作就是区间切割,询问操作就是这棵splay中最 阅读全文
posted @ 2017-10-06 12:44 WizardCowboy 阅读(176) 评论(0) 推荐(0)
[HDU1890]RoboticSort
摘要:Problem 每次找到最小值,然后把它和它前面的数翻转,然后找第二小数······ 然后输出这些数的下标。 Solution 用splay维护,每次找到最小值,然后翻转前面区间。 Notice 细节操作巨烦无比。 Code C++ include include include include i 阅读全文
posted @ 2017-10-05 12:44 WizardCowboy 阅读(145) 评论(2) 推荐(0)
[BZOJ1500]维修数列
摘要:Problem Solution Splay模板题 要记录从左往右的最大和,从右往左的最大和,整个区间内的最大和 Notice 注意0的大坑。 Code 阅读全文
posted @ 2017-10-05 12:32 WizardCowboy 阅读(288) 评论(0) 推荐(0)
[POJ3580]SuperMemo
摘要:Problem ADD x y D: x到y每个数加上D REVERSE x y: 翻转x到y这个区间 REVOLVE x y T: x到y区间往后旋转T位 INSERT x P: 在第x个数后插入P DELETE x: 删除第x个数 MIN x y: 求x到y的区间最小值 Solution spl 阅读全文
posted @ 2017-10-05 12:29 WizardCowboy 阅读(140) 评论(0) 推荐(0)
[POJ3481]Double Queue
摘要:Problem 0 结束操作 1 K P 将一个数K以优先级P加入 2 取出优先级最高的那个数 3 取出优先级最低的那个数 Solution Splay模板题 Notice 是输出数而不是输出优先级。 Code C++ include include include include include 阅读全文
posted @ 2017-10-05 12:24 WizardCowboy 阅读(163) 评论(0) 推荐(0)
[BZOJ1269]文本编辑器editor
摘要:Problem 有n个操作 Solution splay模板题,用splay维护下标。 Notice 需要把l的前一个位置旋转到根,r的后一个位置旋转到根的右节点。所以特别要注意0的大坑。 Code 阅读全文
posted @ 2017-09-30 15:38 WizardCowboy 阅读(130) 评论(0) 推荐(0)
[BZOJ1208]宠物收养所
摘要:Problem 给你一个宠物或是领养者的特点值。 若是领养者的特点值为a,有宠物的特点值为b,那么他会领养abs(a b)最小的值。(如果有a+k和a k,那么优先领养a k) 同理,若是宠物的特点值为a,有领养者的特点值为b,那么它会被abs(a b)最小的值的领养者领养。(如果有a+k和a k, 阅读全文
posted @ 2017-09-30 08:34 WizardCowboy 阅读(132) 评论(0) 推荐(0)
[BZOJ1588]营业额统计
摘要:Problem 每次给你一个数,找出前面的数与这个数的差的绝对值的最小值 Solution Splay Notice 找不到前驱和后继时,会出错。 Code C++ include include include include include using namespace std; define 阅读全文
posted @ 2017-09-29 20:50 WizardCowboy 阅读(151) 评论(0) 推荐(0)
[BZOJ3224]普通平衡树
摘要:Problem 有以下操作 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名为x的数 5. 求x的前驱(前驱定义为小于x,且最大的数) 6. 求x的后继(后继定义为大于x,且最小的数) Solution 裸的 阅读全文
posted @ 2017-09-29 20:25 WizardCowboy 阅读(144) 评论(0) 推荐(0)