题目大意:给定一棵 N 个节点的无根树,边有边权,现生成一个序列 d,d[i] 表示 i 号节点到树上其他节点距离的最大值.给定一个 m,求 d 序列中最大值和最小值之差不超过 m 的最长连续段的长度是多少. 题解:d[i] 直接两次 dfs 即可,考虑如何求出最长连续段.可以发现若当前 [l,r] 合法,则 [l+1,r] 一定也合法,这意味着随着 l 的左移,r 不可能向右移动,符合双指针的思想.在双指针的基础之上维护两个单调队列,用来记录区间 [l,r] 的最大值和最小值,当不符合条件时,…