数据结构0802下午听课笔记

树上路径第k大

x的主席树+y的主席树-lca(x,y)的主席树-fa[lca(x,y)]的主席树。

例题A

用线段树存储左边,有边,总答案,上升和下降都要维护。

对于节点向上跳的操作,注意正向的维护上升,逆向的维护下降即可。

例题B

用线段树维护最左第一个,最右第一个,然后用树链剖分维护即可。

例题C

如果是一个序列问题,第二个序列的数字变成第一个序列中出现过的位置。每次查询两个区间,只要找第二个序列的询问区间中,数值范围在第一个询问区间的数字有多少。

用主席树维护。

转化到树上,我们可以把第二个数的点权转化为第一个数在dfs序上的位置。

显然第一课数通过树链剖分可以划分成不超过log_n个区间,可以直接在第二课数的主席树上查询即可。

例题A

。。。

例题B

统计每一个点的点权和and最大值,然后将点权和存进数组里。

然后按照点权最大值的路径进行排序,然后根据排序去进行统计即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值