bfs
2016-04-16 10:25
429 查看
copy
#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#include <stack>
using namespace std;
int N, K;
int vis[100010];
struct node {
int pos;
int minute;
};
int bfs();
int main()
{
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
cin>>N>>K;
memset(vis, 0, sizeof(vis));
cout<<bfs()<<endl;
return 0;
}
int bfs()
{
queue<node>Queue;
node Node;
Node.pos = N;
Node.minute = 0;
vis[Node.pos] = 1;
Queue.push(Node);
while (!Queue.empty()) {
int x = Queue.front().pos;
int y = Queue.front().minute;
// cout<<x<<endl;
Queue.pop();
if (x == K) {
return y;
}
if (x-1>=0 && (!vis[x-1])) {
vis[x-1] = 1;
Node.pos = x-1;
Node.minute = y+1;
Queue.push(Node);
}
if (x+1<=100000 && (!vis[x+1])) {
vis[x+1] = 1;
Node.pos = x+1;
Node.minute = y+1;
Queue.push(Node);
}
if (x*2<=100000 && (!vis[x*2])) {
vis[x*2] = 1;
Node.pos = x*2;
Node.minute = y+1;
Queue.push(Node);
}
}
return 0;
}
#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#include <stack>
using namespace std;
int N, K;
int vis[100010];
struct node {
int pos;
int minute;
};
int bfs();
int main()
{
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
cin>>N>>K;
memset(vis, 0, sizeof(vis));
cout<<bfs()<<endl;
return 0;
}
int bfs()
{
queue<node>Queue;
node Node;
Node.pos = N;
Node.minute = 0;
vis[Node.pos] = 1;
Queue.push(Node);
while (!Queue.empty()) {
int x = Queue.front().pos;
int y = Queue.front().minute;
// cout<<x<<endl;
Queue.pop();
if (x == K) {
return y;
}
if (x-1>=0 && (!vis[x-1])) {
vis[x-1] = 1;
Node.pos = x-1;
Node.minute = y+1;
Queue.push(Node);
}
if (x+1<=100000 && (!vis[x+1])) {
vis[x+1] = 1;
Node.pos = x+1;
Node.minute = y+1;
Queue.push(Node);
}
if (x*2<=100000 && (!vis[x*2])) {
vis[x*2] = 1;
Node.pos = x*2;
Node.minute = y+1;
Queue.push(Node);
}
}
return 0;
}
相关文章推荐
- 最新龙芯 3A2000/3B2000 已得到 Linux 内核的官方支持
- 找寻路径从根root到节点p的路径函数
- ZOJ 3932 Handshakes
- LeetCode #6 ZigZag Conversion C# Solution
- ZOJ 3932 Handshakes
- SharePoint 2013 网站搜索规则的使用示例
- Caffe 深度学习框架上手教程
- 使用JSSDK集成微信分享遇到的一些坑
- 字节流与字符流的区别详解
- 代码托管和服务功能多元化,看码客帮如何做软件众包
- 整合springMVC,Mybatis的Maven项目框架
- 关于Google Chrome 浏览器的一些命令及用法
- Android天气预报程序(四)
- 银行本票、汇票、支票的区别是什么
- LeetCode 232. Implement Queue using Stacks
- LeetCode——019
- HTML页面关键词随机分布布局
- keil中如何生成bin文件
- SCVMM 2012 SP1 – QuickStart deployment guide
- windows下一分钟配置ngnix实现HLS m3u8点播