• [树的直径]消防


      需要想到路径一定位于直径。

      如果发现以上规律,那么直接把直径处理出来,转化成序列问题,用单调队列跑一下就可以。

      然鹅我学识甚浅,想不通为什么。

      

      设直径长度为$d$

      则若这条路径完全不在直径上,$ans>=d/2$

      若这条路径完全在直径上,$ans<=d/2$

      若这条路径一部分在直径上,假设从$P$点离开直径指向$Q$点 (可以理解成 直径那条边过长走不动了但是可以走一条别的边)

        由于P到直径另一端的距离一定大于$PQ$,所以即使从$P$指向$Q$,减少了这部分距离,但是不会使最大距离变小

        也就是说答案不会比直接在$P$点断了更优秀

      所以可以直接在直径上找路径。

      刚才天皇说找到直径最中间的那条路径就可以(即两头未取到的两段的最大值最小)

      好像很有道理(巨)

      

      因为对于一个非最优方案来讲,它与最优方案的差距可以在:

        非优方案中的一条侧链比最优方案长。

        非优方案中两端的弃链比最优方案长。

      第一种不可能发生,因为如果最优方案没选那条很长的侧链,将会导致多延伸出一部分才能到侧链,答案更劣了

      所以最优方案=弃链最短

      

      不得不说天皇还是太巨了。

  • 相关阅读:
    09.session #
    08.cookie
    07.中间件
    06.类视图
    374. 猜数字大小 力扣 二分 简单却易错
    278. 第一个错误的版本 力扣 二分 简单
    1449. 数位成本和为目标值的最大数字 力扣 动态规划 难 string赋值和比较
    279. 完全平方数 力扣 动态规划 中等
    518. 零钱兑换 II 力扣 动态规划,中等吧
    203. 移除链表元素 力扣
  • 原文地址:https://www.cnblogs.com/yxsplayxs/p/11454531.html
Copyright © 2020-2023  润新知