随笔分类 - 平衡树
摘要:传送门 n个数的排列的置换会形成多个环,改变pi会改变置换的环的情况,两个修改位置在同一个环里,环会分成两个。否则会合并两个环。 只需要知道这些环的情况。挨个检查每一个环的下标最靠前的位置上的数在x和y轮的情况就行了。 由此可以知道ai并不重要。 但是上面的思路中因为环的数量
阅读全文
摘要:使用均摊分析证明Splay复杂度 (PS:终于知道了二叉搜索树(binarysearchtree)为什么叫BST。) 平衡树的一种,靠着旋转来保证复杂度。 怎么旋转?这已经说烂了,我比较关心的是splay的复杂度怎么证明,和为什么一定要使用双旋操作。 (PS:Splay居然是
阅读全文
摘要:FHQ FHQ是一种非旋Treap。没有了复杂的左/右旋操作所以十分适合菜鸡。 其保证复杂度的方法和Treap一样:给每一节点一个随机权记为rad[i],然后使平衡树满足是关于rad[i]\(的堆。构建二差搜索树时,树的形态唯一而且期望深度为\)(logn) *复杂度小证明: 这个思路来自于
阅读全文
摘要:能推出一些性质。 矩形肯定是全部躺着或全部立着比较优。 如图x1显然等于x2,y1显然小于y2。 所以我们就让它们都躺下吧。 然后一定有一组的宽为宽最小的矩形的宽。 然后我们枚举另一组的宽最小的矩形。(当然宽在最小的矩形和枚举的矩形之间的矩形都跟宽最小的矩形一组) 之后就只剩下长的影响了。 假设现在
阅读全文
摘要:一开始的时候感觉就是一个主席树裸题。 然后发现自己错了。 首先建出后缀数组。 设irk[j]显然i更优。 如果$rk[i] include include include include include include include using namespace std; const int
阅读全文
摘要:这题需要一个黑科技——摩尔投票。这是一个什么东西?一个神奇的方法求一个序列中出现次数大于长度一半的数。 简而言之就是 ; 比如有一个代表投票结果的序列。 [1,2,1,1,2,1,1] 我们记录一个num和cnt先别管它们是干什么的。我们模拟一遍模拟排序。 $$首先读第一个数1,nu
阅读全文
摘要:题意 最初,农夫约翰的每头奶牛每天生产G加仑的牛奶 (1≤G≤109)(1≤G≤10^9)(1≤G≤109) 。由于随着时间的推移,奶牛的产奶量可能会发生变化,农夫约翰决定定期对奶牛的产奶量进行测量,并将其记录在日志中。 他的日志中的记录如下: 35 1234 -2 14 2345 +3 第一个条目
阅读全文