首页 > 代码库 > NOIP2012BLOCKADE贪心思想证明
NOIP2012BLOCKADE贪心思想证明
NOIP2012BLOCKADE贪心思想证明
这道题的做法是二分时间并检验这个时间是否可行。检验的方法要用到贪心思想。
- 对于不能到根结点的军队应该尽量向根结点走。
- 如果军队A能走到根结点但到根结点后剩余的时间不够返回根结点的儿子B,应该让军队A守B。
- 否则把军队A加入优先队列,用剩余时间小的军队匹配到根结点距离小的儿子。
证明:
- 一个军队可控制自己和以自己为根的子树。越向上走控制的结点越多。
- 把这个军队记作A,如果不这样,我们必须要用另一个到达根结点的军队,记作C,因为A剩余时间小于到B的时间,如果用C,则C剩余的时间大于到B的时间,这样交换以后在优先队列里的军队的剩余时间变小,不如不换更优。
- 假设军队A剩余的时间比军队B的多,则A能到的结点包扩所有B能到的结点,所以可能存在一些结点A能到但B不能到,所以一个结点B能到我们就不用A。
NOIP2012BLOCKADE贪心思想证明
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。