nowcoder8.31D

题目大意:

给出一棵树,每个点有一个颜色,每次询问一对颜色,假设颜色为c1和c2,对于每次询问,输出颜色为c1的点到颜色为c2的点的最大距离。

n、q<=10^5

 

题解:

对于每个颜色,我们需要保存这个颜色的最远点对。

答案所在路径的两个端点必定分别属于两个不同颜色的最远点对。

证明比较显然,我们假设颜色c1的最远点对为(x1,y1),颜色c2为(x2,y2)。

假设某一点z属于颜色c1,且它和x2的路径大于以上四个点两两之间的路径。

假设路径(x2,z)交路径(x2,x1)于u,那么显然有dis(u,z)>dis(u,x1),那么z是绝对可以取代x1成为颜色c1的最远点对中的一点的,于原题设矛盾。

因此可以确定,没有这样的z。

转载于:https://www.cnblogs.com/lmlysklt/p/9570955.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值