广度优先搜索 入门:抓住那头牛
来源:互联网 发布:淘宝网狗狗宠物店 编辑:程序博客网 时间:2024/06/06 19:31
农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上
,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)
。农夫有两种移动方式:
1、从X移动到X-1或X+1,每次移动花费一分钟
2、从X移动到2*X,每次移动花费一分钟
假设牛没有意识到农夫的行动,站在原地不动。农夫最少要
,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)
。农夫有两种移动方式:
1、从X移动到X-1或X+1,每次移动花费一分钟
2、从X移动到2*X,每次移动花费一分钟
假设牛没有意识到农夫的行动,站在原地不动。农夫最少要
花多少时间才能抓住牛?
/*Catch_The_Cow.cpp*/#include <iostream>#include <queue>#include <cstring>using namespace std;#define MAX 10000int N;//农夫的位置int K;//牛的位置int visit[MAX+10];//存储节点是否走过的信息struct Step{int x;//哪个点int xx;//经过了几步到这个点Step(int a,int b):x(a),xx(b){}};int main(){cout<<"农夫的位置:"<<endl; cin>>N;cout<<"牛的位置:"<<endl;cin>>K;memset(visit,0,MAX);//将状态位全部置为零queue<Step> p;//使用队列p.push(Step(N,0));visit[N]=1;while(!p.empty()){Step s=p.front();if(s.x==K){cout<<s.xx<<endl;//输出最少多需要的步骤.system("pause");return 0;}else{if(s.x-1>0&&visit[s.x-1]!=1){p.push(Step(s.x-1,s.xx+1));visit[s.x-1]=1;}if(s.x+1<MAX&&visit[s.x+1]!=1){p.push(Step(s.x+1,s.xx+1));visit[s.xx+1]=1;}if(s.x*2<MAX&&visit[s.x*2]!=1){p.push(Step(s.x*2,s.xx+1));visit[s.x*2]=1;}}p.pop();}system("pause");return 0;}
0 0
- 广度优先搜索 入门:抓住那头牛
- 广度优先搜索--抓住那头牛(poj 3278)
- 广度优先搜索之入门题目->抓住那只牛
- 广度搜索(BFS)入门题目:抓住那头牛
- poj 4001 抓住那头牛 (广度优先搜索算法)
- 广度优先搜索-抓住那头牛(算法基础 第8周)
- C++广度优先搜索算法之抓住那头牛(Catch that cow)
- [PKU暑课笔记] 广度优先搜索BFS POJ3278抓住那头牛 POJ3984迷宫问题
- 广度优先搜索bfs与抓住那头奶牛(Catch that cow, poj3278)
- 抓住那头牛
- 抓住那头牛
- 抓住那头牛
- 抓住那头牛
- 抓住那头牛
- 抓住那头牛
- 抓住那头牛
- 广度优先搜索入门
- 广度优先搜索入门
- No rule to make target `/Users/apple/Desktop/Jayon/Cocos2dx/cocos2d-2.0-x-2.
- Codeforces Round #274 (Div. 2) 解题报告
- Redis源码解析(十五)--- aof-append only file解析
- ZOJ 1109 ————————字典树基础
- windows编程学习笔记(1)创建窗口与消息循环
- 广度优先搜索 入门:抓住那头牛
- LeetCode 二叉树的最小深度
- 多边形周长均分
- android纹理
- [php] 将数字金额转换大写
- zoj 1649 BFS
- jsp和serverlet的区别
- PHP 操作MySQL时mysql_connect( )和Mysqli( )的两种报错机制
- 数据库解析——InnoDB的行锁模式及加锁方法