题目链接:https://www.luogu.org/problem/P1522 思路:编号,然后跑floyd,这是很清楚的.然后记录每个点在这个联通块中的最远距离. 然后分连通块,枚举两个点(不属于同一个连通块的)建边,计算可能的直径 dist[i] + dist[j] + dis(i,j). 当然,这里有一个需要注意,(sccno[x]表示属于哪一个编号的连通块,sccdis[x]表示该连通块的直径), 在枚举点建边,形成新的牧场,得到新的可能的直径时,dist[i] + dist[j] +…