![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
treap
EMber _
人但有追求,世界亦会让路。
展开
-
bzoj2391Cirno的忧郁 treap+三角剖分
好强啊这题,只能%题解。 因为题目中不存在三点共线的情况先设p0(-10000,-10000),然后将其他点极角排序(如果用最左下的点后面计算时还需要特殊处理)f[i][j]表示0,i,j这个三角形内的点数,ij为排序后的标号这一步可以预处理,做法是对于每个i建一棵平衡树,将排在它以后的j逐个加入平衡树,平衡树的关键字为i为基点的极角,可以发现j在平衡树中的排名就是三角形内部的点数+1然后将三角形原创 2017-07-30 19:38:47 · 383 阅读 · 0 评论 -
bzoj1503[NOI2004]郁闷的出纳员 treap
换个打法,以前一直用指针,现在觉得太麻烦,借鉴ymwdalao的模板。#include<iostream> #include<cstdio> #include<ctime> #include<cstdlib> using namespace std;struct leaf { int k,s,l,r,num; };int n,m,delta=0,size=0,root=0,tot=0; le原创 2017-07-26 11:55:19 · 339 阅读 · 0 评论 -
bzoj1862&&1056 GameZ游戏排名系统 treap+哈希表
居然只是隔了就拿来当原题,这样真的好吗=。= 平衡树直接硬上,然后用哈希表存一下名字,其余的话就是裸操作了,要注意的是要加上一个时间标记,不然删的时候会炸。。 时间标记有几个地方忘记加上结果T了半天= =。 码了1个小时多,手酸了都= =4400B#include<cstdio> #include<algorithm> #include<cstring> #include<cstdlib> u原创 2017-07-26 17:09:06 · 278 阅读 · 0 评论 -
bzoj1691 [Usaco2007 Dec]挑剔的美食家 treap+贪心
比较明显的贪心吧,按照鲜嫩值排个序,从大到小,然后每次只加入比当前鲜嫩值大的,直接查找就好了,找到以后就删掉。#include<cstdio> #include<algorithm> #include<cstring> #define fo(i,a,b) for(int i=a;i<=b;i++) #define fd(i,a,b) for(int i=a;i>=b;i--) using names原创 2017-07-27 15:39:38 · 241 阅读 · 0 评论 -
bzoj3196 Tyvj 1730 二逼平衡树 线段树套treap
裸的树套树,其实本来是想练习treap,后来想想算了,顺手学一波咯,反正是入门题。 t[k].s表示子树大小,t[k].w表示k这个点含有多少相同的数。#include<cstdio> #include<algorithm> #include<cstring> #define fo(i,a,b) for(int i=a;i<=b;i++) #define fd(i,a,b) for(int i=a原创 2017-07-27 16:56:33 · 395 阅读 · 0 评论 -
bzoj1588[HNOI2002]营业额统计 treap
Description营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况原创 2017-07-27 10:00:52 · 207 阅读 · 0 评论 -
bzoj3224 Tyvj 1728 普通平衡树 treap
模板题啦~,复习一波。 treap比splay好写多了qwq#include<cstdio> #include<algorithm> #include<cstring> #include<cstdlib> #include<iostream> #define fo(i,a,b) for(int i=a;i<=b;i++) #define fd(i,a,b) for(int i=a;i>=b;i--原创 2017-08-29 16:27:31 · 438 阅读 · 0 评论