第一次写这种大模拟题呢。。。觉得很考验码力和阅读理解能力,就写上了。
题意简述
给定一个带权的树,
定义:
- 点 x x x到路径 P P P的距离: P P P中离 x x x最远的点的到 x x x的距离
- 一条路径 P P P的偏心距为:树上离路径 P P P最远的点到 P P P的距离
请找到一个路径 P P P,使得:
- P P P的所有点在这个树的直径上
- P P P中的边权和 < = S <=S <=S, S S S给定
- P P P的偏心距最小
输出最小的偏心距。
思路
先说一下,这个题数据水甚,大概 O ( n 4 ) O(n^4) O(n4)也是能过去的,只要顾着写就可以了,几乎不用考虑时间复杂度。
首先找到直径。然后在直径上 O ( n 2 ) O(n^2) O(n2)枚举路径的两个端点,计算出这个路径的偏心距,更新答案即可。
几个细节:
-
<