tree专题

Mart Master II
树上没点被标记为0/1,在树上找一新点标记为1,使得它支配的点集最大。
a支配b:b到达所有标号为1的点中,a是最近的。

*树分治的作用:统计经过重心的答案贡献。

为了叙述方便,做出以下定义:
d[u]:u到重心的距离
minn[u]:u到达最近标号为1的点的距离
id[u]:minn[u]答案点的编号

首先,对于u来说,任何一点v被它支配必须满足以下两条性质之一:
1)d[u]+d[v]<minn[v]
2)d[u]+d[v]==minn[v],u<id[v]
用pair表示: MP(d[u],u)<MP(minn[v]d[v],id[v])

接着,如果我们考虑经过重心的链(u,v)对u的答案贡献,就可以得到一个自然的统计思路:枚举u,统计所有非u所在子树中,满足上述不等式的v的个数。这个可以用双指针OR二分法实现。我是用双指针实现的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值