/*51 nod 1766 树上的最远点对(线段树+lca)problem:n个点被n-1条边连接成了一颗树,给出a~b和c~d两个区间,表示点的标号请你求出两个区间内各选一点之间的最大距离,即你需要求出max{dis(i,j) |a<=i<=b,c<=j<=d}solve:最开始想的是树链剖分,结果发现是区间[a,b]. 看成链了...看题解说的是最远点有合并的性质. 就是[a,b]的最远点ta,tb和[b+1,c]的最远点tc,td这四个点中距离最远的就是[a,c]的最远点.. 证明并没有怎么看懂- -如果用线段树和并的话,需要快速求两点之间的距离. 可以用st快速求lca来解决,预处理便能得到O(1)的.然后就是线段树合并时处理下.http://blog.csdn.net/rzo_kqp_orz/article/details/52280811hhh-2016/09/15-21:16:26*/#pragma comment(linker,"/STACK:124000000,124000000")#include #include #include #include #include #include #include #include #include #include