[树的直径]消防
作者:互联网
需要想到路径一定位于直径。
如果发现以上规律,那么直接把直径处理出来,转化成序列问题,用单调队列跑一下就可以。
然鹅我学识甚浅,想不通为什么。
设直径长度为$d$
则若这条路径完全不在直径上,$ans>=d/2$
若这条路径完全在直径上,$ans<=d/2$
若这条路径一部分在直径上,假设从$P$点离开直径指向$Q$点 (可以理解成 直径那条边过长走不动了但是可以走一条别的边)
由于P到直径另一端的距离一定大于$PQ$,所以即使从$P$指向$Q$,减少了这部分距离,但是不会使最大距离变小
也就是说答案不会比直接在$P$点断了更优秀
所以可以直接在直径上找路径。
刚才天皇说找到直径最中间的那条路径就可以(即两头未取到的两段的最大值最小)
好像很有道理(巨)
因为对于一个非最优方案来讲,它与最优方案的差距可以在:
非优方案中的一条侧链比最优方案长。
非优方案中两端的弃链比最优方案长。
第一种不可能发生,因为如果最优方案没选那条很长的侧链,将会导致多延伸出一部分才能到侧链,答案更劣了
所以最优方案=弃链最短
不得不说天皇还是太巨了。
标签:非优,方案,消防,侧链,路径,直径,最优 来源: https://www.cnblogs.com/yxsplayxs/p/11454531.html