poj3278追逐母牛

题目描述:农夫约翰已被告知一头逃亡母牛的位置,并希望立即抓住她。他从数轴上的点N (0 ≤ N ≤ 100,000) 开始,而奶牛在同一数轴上的点K (0 ≤ K ≤ 100,000) 处。Farmer John 有两种交通方式:步行和传送。

1. 行走:FJ 可以在一分钟内从X点移动到X - 1 或X + 1点

2. 传送:FJ 可以在一分钟内从X点移动到 2 × X点。

假设母牛是不会动的,农夫约翰需要多长时间才能取回它?

输入:两个空格分隔的整数:NK

输出:农夫约翰抓住逃亡母牛所需的最少时间(min)

使用算法:广度优先搜索,农夫只有三种方式来捉到母牛,一是一步一步往前移,每移动一步需要1min,二是往后一步一步移动,三是移动到当前位置的两倍处。显然在离母牛远时用第三种方式更快,一旦不小心过了母牛,就只能采用方式二退回来,时间必然不是最少的,所以先分两种情况,一种是农夫在母牛前面,那么农夫就只能后退,时间就是农夫的位置减去母牛的位置,另外一种则要采用广度优先搜索算法得出最优解。

广度优先搜索的实现方法: 

1.设置一个队列Q,从队列的顶点开始,遍历该顶点后让其进队;

2.出队一个顶点元素,求该顶点的所有邻接点(对应于此题即FJ的三种走法)

3对于没有遍历过的邻接点遍历之&

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值