(bfs)1028Catch That Cow
来源:互联网 发布:二维码生成源码 编辑:程序博客网 时间:2024/06/05 10:47
Catch That Cow
Problem Description
Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting. * Walking: FJ can move from any point X to the points X - 1 or X + 1 in a single minute * Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?
Input
Line 1: Two space-separated integers: N and K
Output
Line 1: The least amount of time, in minutes, it takes for Farmer John to catch the fugitive cow.
Example Input
5 17
Example Output
4
解题思路
两种交通方式,三种走法,即点可能存在的三种邻接点。
代码
#include<stdio.h>#include<cstring>#include<queue>using namespace std;typedef struct Node{ int num,step;}Node;int visited[100001],k;int Check(int t)//检查结点的合法性{ if(t<0||t>100000||visited[t]==1) /*注意点:if(visited[t]==1||t<0||t>100000)这种情况就报错, 如果t<0||t>100000,visited[t]就存在越界错误*/ return 0; return 1;}void BFS(int n){ queue<Node>q; Node fir; fir.num=n; fir.step=0; visited[n]=1; q.push(fir); while(!q.empty()) { Node tmp,nxt; tmp=q.front(); // printf("num=%d\n",tmp.num); q.pop(); if(tmp.num==k) { printf("%d\n",tmp.step); return; } nxt.num=tmp.num+1; if(Check(nxt.num)) { nxt.step=tmp.step+1; visited[nxt.num]=1; q.push(nxt); } nxt.num=tmp.num-1; if(Check(nxt.num)) { nxt.step=tmp.step+1; visited[nxt.num]=1; q.push(nxt); } nxt.num=tmp.num*2; if(Check(nxt.num)) { nxt.step=tmp.step+1; visited[nxt.num]=1; q.push(nxt); } }}int main(){ int n; scanf("%d%d",&n,&k); memset(visited,0,sizeof(visited)); BFS(n); return 0;}
- SDUT 1028 Catch That Cow (BFS)
- (bfs)1028Catch That Cow
- Catch That Cow(BFS)
- Catch That Cow(BFS)
- Catch That Cow (BFS)
- Catch That Cow (BFS)
- Catch That Cow(BFS)
- Catch That Cow(bfs)
- Catch That Cow+BFS
- Catch That Cow BFS
- Catch That Cow BFS
- Catch That Cow(BFS)
- Catch That Cow BFS
- Catch That Cow (BFS)
- Catch That Cow【bfs】
- Catch That Cow(bfs)
- Catch That Cow BFS
- bfs-catch that cow
- [Java]迭代器(Iterator)
- China-Blog
- 单片机烧录不了,找到原因了
- <C语言>递归思维及其实现-----汉诺塔问题
- shell编程
- (bfs)1028Catch That Cow
- 创建 macvlan 网络
- 操作系统学习_环境搭建_Linux下的bochs
- zcmu-1198
- Html语言简介
- Vue -页面同步插件,很有意思。
- [RK3288][Android6.0] 调试笔记 --- eMMC分区号和名字的对应
- JS运行三部曲---预编译
- C++中 引用 和 const