CF1795F Blocking Chips

题意

一棵大小为 n 的树,有 k 个人,第 i 个人在结点 ai​。
从第 1 秒开始,依次操作第 1,2,3,…,k,1,2,3,…,k,1,2,3,…,k,… 个人,每秒操作一个人,把这个人移动到没有被走过的结点(包括其他人走过的)。当不能移动时结束。
问最多能操作多少次,多测。

思路

非常简单 就可以想到答案可以二分。因为如果当前总步数能够实现,那么更小的也一定能实现。
我们考虑以 1 为根。
先考虑最下面的点。如果它能够往下走,那么它一定会往下走(这样更优)。否则我们只能走到它的父亲,并等到递归到它父亲时再继续安排路径。
具体细节:
我们对于每个点 u 求一个能够往下走的最深的深度 depu,有
(v∈sonu&colv=white)depu=max⁡(depv+1)。
每个点存一个 ai​ 表示它还需要走 ai−1 步。若 ai=0 则表示这个点是白色,否则就是黑色。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值