随笔分类 - 数据结构--splay
摘要:题面 "传送门" Sol 答案就是去掉匹配的括号后的左边右括号个数$/2$取下整和右边左括号个数$/2$取下整 维护: 设$($为$ 1$,$)$为$1$,最大的前缀和就是左边右括号的个数 最小的的后缀和的相反数就是右边左括号的个数 因为要支持取反,翻转等操作 我们要维护左边最大最小,右边最大最小,
阅读全文
摘要:题面 "传送门" Sol 题目都说了 必然存在一种最优的买卖方案满足: 每次买进操作使用完所有的人民币; 每次卖出操作卖出所有的金券。 设$f[i]$表示第$i$天可以有的最大钱数 枚举$jb_iY_k+a_iX_k$$ 假设$k\frac{Y_j Y_k}{X_j X_k}$$ 设$K_i=\fr
阅读全文
摘要:题面 题目描述 为了把工厂中高低不等的物品按从低到高排好序,工程师发明了一种排序机械臂。它遵循一个简单的排序规则,第一次操作找到摄低的物品的位置P1,并把左起第一个至P1间的物品反序;第二次找到第二低的物品的位置P2,并把左起第二个至P2间的物品反序...最终所有的物品都会被排好序。 你的任务便是编
阅读全文
摘要:这道题显然平衡树,splay,treap什么的随便切 然而我不想打,决定水过这道题 把空间开3倍,树状数组维护它前面的树的个数,开个id数组记录位置 找一个数排名直接二分加求前缀和,log^2的搞一搞 把一个数放在顶/低 直接丢在当前顶/低的前后就可以了不然开3倍数组干嘛 c常数小堪比log的平衡树
阅读全文
摘要:Splay模板题(很难调) # include <bits/stdc++.h> # define IL inline # define RG register # define Fill(a, b) memset(a, b, sizeof(a)) using namespace std; typed
阅读全文
摘要:CDQ套CDQ或者CDQ套树套树 前者快于后者然而我写了后者 # include <stdio.h> # include <stdlib.h> # include <iostream> # include <algorithm> # include <string.h> # define IL in
阅读全文
摘要:CDQ分治或树套树可以切掉 CDQ框架: 先分 计算左边对右边的贡献 再和 所以这个题可以一维排序,二维CDQ,三维树状数组统计 CDQ代码 # include <stdio.h> # include <stdlib.h> # include <iostream> # include <algori
阅读全文
摘要:前几天刚刚自学了一下splay,发现思路真简单实现起来好麻烦 先贴一下头文件 # include <stdio.h> # include <stdlib.h> # include <iostream> # include <string.h> # define ll long long # defi
阅读全文

浙公网安备 33010602011771号