2017年10月9日
摘要: Problem 查询区间第k大,但保证区间不互相包含(可以相交) Solution 只需要对每个区间左端点进行排序,那它们的右端点必定单调递增,不然会出现区间包含的情况。 所以我们暴力对下一个区间加上这个区间没有的点,删去下个区间没有的点。 因为每个点最多被加入,删除1次,所以时间复杂度为O(nlo 阅读全文
posted @ 2017-10-09 23:41 WizardCowboy 阅读(152) 评论(0) 推荐(0) 编辑
摘要: Problem 有添加操作和询问操作,每次询问输出第i大的数。 Solution Treap标准模板题 Notice 非旋转的真心难打。 Code 非旋转Treap C++ include include include include include using namespace std; de 阅读全文
posted @ 2017-10-09 23:29 WizardCowboy 阅读(119) 评论(0) 推荐(0) 编辑
  2017年10月6日
摘要: 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 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 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 阅读(168) 评论(0) 推荐(0) 编辑
摘要: Problem 先告诉你每个盒子在哪个盒子的内部 接下来有M个操作: 可以把一个盒子及里面的盒子移到另外一个盒子的内部 或者询问你某个盒子最外面的盒子是哪个 Solution 首先可以建成一个图,然后先dfs一遍,用dfs序加入多棵splay 然后移动操作就是区间切割,询问操作就是这棵splay中最 阅读全文
posted @ 2017-10-06 12:44 WizardCowboy 阅读(169) 评论(0) 推荐(0) 编辑
  2017年10月5日
摘要: Problem 每次找到最小值,然后把它和它前面的数翻转,然后找第二小数······ 然后输出这些数的下标。 Solution 用splay维护,每次找到最小值,然后翻转前面区间。 Notice 细节操作巨烦无比。 Code C++ include include include include i 阅读全文
posted @ 2017-10-05 12:44 WizardCowboy 阅读(137) 评论(2) 推荐(0) 编辑
摘要: Problem Solution Splay模板题 要记录从左往右的最大和,从右往左的最大和,整个区间内的最大和 Notice 注意0的大坑。 Code 阅读全文
posted @ 2017-10-05 12:32 WizardCowboy 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 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 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 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 阅读(156) 评论(0) 推荐(0) 编辑
  2017年9月30日
摘要: Problem 有n个操作 Solution splay模板题,用splay维护下标。 Notice 需要把l的前一个位置旋转到根,r的后一个位置旋转到根的右节点。所以特别要注意0的大坑。 Code 阅读全文
posted @ 2017-09-30 15:38 WizardCowboy 阅读(119) 评论(0) 推荐(0) 编辑