博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BFS POJ 3278 Catch That Cow
阅读量:7226 次
发布时间:2019-06-29

本文共 1191 字,大约阅读时间需要 3 分钟。

 

1 /* 2     BFS简单题:考虑x-1,x+1,x*2三种情况,bfs队列练练手 3 */ 4 #include 
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 using namespace std;13 14 const int MAXN = 1e6 + 10;15 const int INF = 0x3f3f3f3f;16 int n, m;17 int d[MAXN];18 bool vis[MAXN];19 20 void BFS(void)21 {22 memset (vis, 0, sizeof (vis));23 for (int i=0; i<=1e6; ++i) d[MAXN] = 0;24 25 queue
q;26 q.push (n); d[n] = 0; vis[n] = true;27 28 while (!q.empty ())29 {30 int x = q.front (); q.pop ();31 if (x == m) break;32 33 int xl = x - 1; int xr = x + 1; int x2 = x * 2;34 35 if (xl >= 0 && !vis[xl])36 {37 q.push (xl); d[xl] = d[x] + 1;38 vis[xl] = true;39 }40 if (xr <= 1e6 && !vis[xr])41 {42 q.push (xr); d[xr] = d[x] + 1;43 vis[xr] = true;44 }45 if (x2 <= 1e6 && !vis[x2])46 {47 q.push (x2); d[x2] = d[x] + 1;48 vis[x2] = true;49 }50 }51 52 }53 54 int main(void) //POJ 3278 Catch That Cow55 {56 //freopen ("POJ_3278.in", "r", stdin);57 58 while (scanf ("%d%d", &n, &m) == 2)59 {60 BFS ();61 printf ("%d\n", d[m]);62 }63 64 return 0;65 }

 

转载于:https://www.cnblogs.com/Running-Time/p/4444809.html

你可能感兴趣的文章
react-hooks 实现简单的评论list
查看>>
【多图警告】学会JavaScript测试你就是同行中最亮的仔(妹)
查看>>
19-04-25
查看>>
一个JAVA程序员成长之路分享
查看>>
30K iOS程序员的简述:如何快速进阶成为高级开发人员
查看>>
Go 夜读 - 每周四晚上 Go 源码阅读技术分享
查看>>
tranform知多少
查看>>
Android电量优化
查看>>
[爬虫手记] 我是如何在3分钟内开发完一个爬虫的
查看>>
【译】Css Grid VS Flexbox: 实践比较
查看>>
iOS 开发知识索引
查看>>
Linux iptables命令
查看>>
webpack的使用
查看>>
干货 | 基于Go SDK操作京东云对象存储OSS的入门指南
查看>>
D3.js入门
查看>>
一次和前端的相互甩锅的问题记录
查看>>
纯OC实现iOS DLNA投屏功能了解一下
查看>>
RxJava -- fromArray 和 Just 以及 interval
查看>>
LC #75 JS
查看>>
js正则验证代码库
查看>>