![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
非旋treap
Mys_C_K
人生有许多道:曾经踏足的是道,即将踏往的也是道,那什么才是道呢?唯有脚下走的才是道。一切精神或者物质都归于虚无,然后从混沌中衍生出三万道。在悲喜间涉足一条无数前人经历过,且将有无数后人奔赴的道,无论是否已经或者将要到达彼岸,然后便不再回头或是左顾右盼,即使有些道繁盛至极,夜灯如昼,无数人一浪又一浪的涌去,造就了世人皆知的辉煌;即使有些道草木凋敝,荒草丛生,只等勇敢的开拓者斩开荆棘,创造一片天地;这些都无所关,无所在意,彼岸何如、来日何方甚至过往旧事都化作一缕云烟,飘渺碧霄,我自撷高山之月色,独随足落处往行。
展开
-
「学习笔记」bzoj 3224 & bzoj 3223 平衡树两件套 - 非旋treap - 学习笔记
非选treap真是个好东西! bzoj3224有个实现细节我看网上都是错的,即split的时候,可能有重复元素(也就是1 x了相同的x很多次),然后求kth的时候不能把那个点拆成两个(否则merge的时候正确性和代码复杂度和时间复杂度都不能保证……吧?)。还有就是非旋treap其实不需要像splay一样一开始插入一个inf和INF来减少特判。 bzoj 3224:#include<i...原创 2018-09-04 11:25:27 · 201 阅读 · 0 评论 -
bzoj 3678 wangxz与OJ - 非旋Treap
不行我已经沉迷非旋Treap了他是在是太好写了啊啊啊啊 split实现的时候,如果要当前节点拆开,就先留着(作为左子树的最大值),然后实现一个cut函数,专门处理这种情况就可以了,如此实现没有任何细节。 (我代码只有不到两k的说(大雾#include<bits/stdc++.h>#define lint long long#define ull unsigned lint...原创 2018-09-11 16:13:08 · 243 阅读 · 0 评论 -
小Q与内存 - 非旋Treap - 线段树合并
题目大意:你要维护内存分配,初始有一个空的内存池,编号从0到230−1230−12^{30}-1,每次形如: alloc k,表示申请k个单位内存,依次将目前空着的编号最小的k个单位内存(可以不连续)作为这一次申请的结果。 delete t,表示销毁第t次申请的内存,第t次申请的内存变为空。 query t k,表示询问第t次申请的内存里,编号第k小的编号是多少(k从0开始)。 期间还需要...原创 2018-09-12 19:03:23 · 167 阅读 · 0 评论 -
世界杯 - 非旋Treap
题目大意:有n个人,每个人有一个k元组v。称A能胜B当且仅当存在至少一维,A的k元组该维大于B的k元组该维。(显然除了单方面碾压还有可能互有胜负)。现在你可以安排比赛顺序以及钦定互有胜负的情况下的比赛结果。输了的立马淘汰,比赛不同时进行。对每个i求,加入第i个人后,哪些人有可能赢?k≤5,n≤105k\le5,n\le10^5k≤5,n≤105,k元组的每一维都是一个关于n的排列。题解:...原创 2018-11-04 14:14:38 · 146 阅读 · 0 评论 -
Elephant - 平衡树 - 矩阵乘法
题目大意:设FM(k)F_M(k)FM(k)表示一张M个点的无向完全图从1走k步回到自己的方案数。给定序列{an}\{a_n\}{an},支持:区间加,区间翻转,区间求FM(ai)F_M(a_i)FM(ai)的gcd\gcdgcd。其中M是固定的(输入的常数)。题解:通过观察发现gcd(FM(k1),FM(k2))=FM(gcd(k1−1,k2−1)+1)\gcd \left(F_...原创 2019-04-03 07:35:25 · 269 阅读 · 0 评论