zoukankan      html  css  js  c++  java
  • CSA Round 84 Growing Trees

    题目

    题目大意

    给定一棵有 $n$ 个节点的树,边的权值每天变化。对于第 $i$ 条边,在第 $0$ 天,其权值为 $c_i$,每天权值变化 $a_i$(即,在第 $k$ 天,其权值为 $c_i + k a_i$)。求在第 $0$ 天到第 $D$ 天之间,树的直径的最小值,并且求出最早在哪一天达到最小值。

    分析

    二分答案

    二分直径取到最小值是在哪一天。

    求出第 $d$ 天树的直径的长度 $l_d$,并且求出当天某一条直径 $p_d$ 的长度变化率 $r_d$ 。

    • 若 $r_d < 0$ ,则在第 $d$ 天之前,路径 $p_d$ 的长度必定大于 $l_d$,这意味着在第 $d$ 天之前,树的直径的长度也大于 $l_d$;因此树的直径长度小于 $l_d$ 只可能在第 $d$ 天之后出现。

    • 同理,若 $r_d > 0$,则在第 $d$ 天之后,路径 $p_d$ 的长度必定大于 $l_d$,这意味着在第 $d$ 天之后,树的直径的长度也大于 $l_d$,因此树的直径长度小于 $l_d$ 只可能在第 $d$ 天之前出现。

    • 若 $r_d = 0$ 则树的直径长度的最小值就是 $l_d$,此时需要检查在第 $d$ 天之前树的直径长度是否也可能是 $l_d$ 。

  • 相关阅读:
    requestAnimationFrame
    js来监控复制粘贴
    nodejs事件循环
    前端路由
    js基础查漏补缺(更新)
    http & https & http2.0
    进度条方案
    移动端适配方案
    性能优化之节流、防抖
    altium designer 里如何设置PCB默认字符默认大小(PCB丝印)
  • 原文地址:https://www.cnblogs.com/Patt/p/9353065.html
Copyright © 2011-2022 走看看