![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Treap
hhhcbw
Hello World!!!
展开
-
Treap(四)——#104. 普通平衡树
题目链接:https://loj.ac/problem/104 解题思路 Treap模板题,涉及插入,删除,找前驱,后继,找第k小,找某数排名。 AC代码 //Treap的一些基本操作 #include <iostream> #include <stdio.h> #include <algorithm> using namespace std; const int inf=0x3f3f3f3f; const int N=5e5+5; int rt,tot; struct原创 2020-09-16 16:25:40 · 101 阅读 · 0 评论 -
Treap(三)——#10145. 「一本通 4.6 练习 2」郁闷的出纳员
题目链接:https://loj.ac/problem/10145 解题思路 用Treap解决,用到插入,与查找第k大,不需要特定的删除(即一个一个删除,浪费时间),如果工资减到小于合同工资,我们直接将该点与其左子树删去,并更新离开公司人的数量,并将其右子树移到该点,注意此时该点已经变成其右孩子结点了,再往下减工资,还是从该点开始,最后还要更新一下该点的子树大小。其它的套模板即可。 AC代码 #include <iostream> #include <stdio.h> #includ原创 2020-09-16 16:01:32 · 146 阅读 · 0 评论 -
Treap(二)——#10144. 「一本通 4.6 练习 1」宠物收养所
题目链接:https://loj.ac/problem/10144#submit_code 解题思路 Treap模板题,肯定会只剩宠物或者只剩领养动物的,所以只用开一个树就行。之后用模板就行。 AC代码 #include <iostream> #include <stdio.h> #include <algorithm> using namespace std; typedef long long ll; // 1代表宠物 2代表人 int cnt1, cnt2; int原创 2020-09-15 22:49:40 · 394 阅读 · 0 评论 -
Treap(一)——#10143. 「一本通 4.6 例 1」营业额统计
题目链接:https://loj.ac/problem/10143 解题思路 Treap模板题,我们发现对于每次ai,只需要找当前序列中比其大的最小的那个,和比其小的最大的那个,然后取差值的最小值加上去即可。所以需要用到Treap的插入,找前驱和后继即可。如果有相同元素,不受影响,不需要再插入了。之后套模板即可。 AC代码 #include <iostream> #include <stdio.h> #include <cstring> #include <algo原创 2020-09-15 19:13:25 · 199 阅读 · 0 评论