treap入门题目集合(附模板)

本文汇集了POJ 3481、HDU 5877、BZOJ 1208、BZOJ 3224、Tyvj 1728和BZOJ 1588等基础Treap题目,这些题目适合初学者练习,通过套用Treap模板即可解决。Treap是一种结合了二叉搜索树和堆特性的数据结构,通过随机值保证平衡性。
摘要由CSDN通过智能技术生成

POJ 3481
HDU 5877
BZOJ 1208
BZOJ 3224 Tyvj 1728
BZOJ 1588
        这些题目都很裸,套套模板就能A,所以就放一起了,treap=tree+heap,让数值维持二叉树性质,用随机值维护堆性质(用这个维护树的平衡)


const int N = 100010;
struct Treap{
    int l,r;        //左,右
    int val,dat;    //价值,随机值
    int cnt,sz;   //副本数,子树大小
}t[N];
int tot,root,n,INF = 0x7fffffff;

void init(){tot=0;}
int New(int val){t[++tot].val=val;t[tot].dat=rand();t[tot].l=t[tot].r=0;t[tot].cnt=t[tot].sz=1;return tot;}
void update(int p){t[p].sz=t[t[p].l].sz+t[t[p].r].sz+t[p].cnt;}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值