其他分享
首页 > 其他分享> > [树的直径]消防

[树的直径]消防

作者:互联网

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

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

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

  

  设直径长度为$d$

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

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

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

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

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

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

 

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

  好像很有道理(巨)

  

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

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

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

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

  所以最优方案=弃链最短

  

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

标签:非优,方案,消防,侧链,路径,直径,最优
来源: https://www.cnblogs.com/yxsplayxs/p/11454531.html