算法选修(J.琴和可莉)(为选修画上句号)

可莉又去池塘炸鱼啦!琴团长决定亲自捉拿可莉将其关禁闭。琴团长不断地追,可莉不断地跑。

琴团长和可莉的行动路线可以看做是一个有n个节点的无根树,初始时琴团长在A点,可莉在B点,她们互相知道对方的位置。
琴团长想尽快抓到可莉,可莉不想让琴团长快速抓到自己,两人都采用最优的策略。
每个回合轮流操作,每次操作可以选择留在原地或者移动到相邻的节点,由可莉开始第一个回合。
现在请你计算一下,多少个回合后琴团长可以抓到可莉?

Input

有多组测试样例

第一行包含三个整数 n,A,B( 1 ≤ A,B ≤ n ≤ 2 × 10^5)

接下来 n - 1行包含两个整数 u,v 表示 u,v 之间有一条边
Output

对于每一个测试样例

共一行, 输出一个整数表示答案

Sample Input
4 1 3
1 2
2 3

2 4

5 1 2

1 2
2 3
3 4
2 5

Sample Output

2

3

 

 

这篇就不粘代码了,说一下思路,之前粘代码被称为“机院福利姬”,虽然没有查重,但是对那些真正自己写代码的人不是很友好,我的思路是,因为是个无根树,用spfa或者是dijkstra找到这两个点到每一个点的距离,然后遍历n个点,如果逃跑的人,到某个点的距离小于追的人,那么记录这个值,然后这个值的最大值就是结果 ,很好理解,注意多组输入,(虽然题里没说),然后说一句题外话,我不是大佬,埋土大佬很多,我就是个菜鸡,因为最近写算法选修的原因,很多人关注我,很多大佬是不想写,让我钻了空子(明年还有选修,我接着写hh)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

q619718

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值