博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ACM/ICPC 之 BFS-广搜+队列入门-抓牛(POJ3278)
阅读量:5032 次
发布时间:2019-06-12

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

这一题是练习广度优先搜索很好的例题,在很多广搜教学中经常用到,放在这里供学习搜索算法的孩纸们看看= =

 


 

 

题目大意:一维数轴上,农夫在N点,牛在K点,假定牛不会移动,农夫要找到这头牛只能够进行以下三种移动方法

  • 2*N-跳跃到两倍于自己所在的位置
  • N+1 -右移一位
  • N -1 -左移一位

 

BFS解法解析:按照移动步数依次遍历队首,pop掉,并拓展出下一步所有可走位置并依次压入队列(不懂的孩纸们找度娘,很基础的数据结构)中,在这里为Code方便,我使用STL中的queue。

 


 

 

Code如下:

 

1 //从N到K 2 //要么N*2,要么N+1或者N-1 3 //Time: 94 Ms 4 #include
5 #include
6 #include
7 #include
8 using namespace std; 9 const int MAXN=100005;10 int n,k; //所在位置,需到达位置(一维)11 int time[MAXN];12 int v[MAXN];13 void bfs()14 {15 int cur,temp;16 queue
q;17 q.push(n);18 while( !q.empty() )19 {20 cur = q.front();21 q.pop();22 v[cur] = 1;23 if(cur == k)24 {25 cout<
<
=0 && temp < MAXN && !v[temp])39 {40 q.push(temp);41 time[temp] = time[cur]+1;42 v[temp] = 1;43 }44 }45 }46 }47 int main()48 {49 cin>>n>>k;50 if(n<=k)51 bfs();52 else53 cout<
<

 

转载于:https://www.cnblogs.com/Inkblots/p/4846060.html

你可能感兴趣的文章
分享Java web 开发必游之路
查看>>
IIS初始化(预加载),解决第一次访问慢,程序池被回收问题(转载)
查看>>
Bean的Scope
查看>>
【BZOJ】3142: [Hnoi2013]数列
查看>>
http初探
查看>>
W3C标准以及规范
查看>>
elasticsearch的安装
查看>>
__next__()
查看>>
爬取:中国大学排名
查看>>
聊天室(C++客户端+Pyhton服务器)_1.框架搭设
查看>>
UpdatePanel 内控件 更新“外的”控件【转】
查看>>
[CF508E] Arthur and Brackets
查看>>
[CF1029E] Tree with Small Distances
查看>>
tp5.0中及其常用方法的一些函数方法(自己看)和技巧(不断添加中)
查看>>
美团推荐算法实践
查看>>
Netty官方示例
查看>>
[数分提高]2014-2015-2第4教学周第2次课
查看>>
ansible进阶小技巧--tags
查看>>
JSP页面跳转方式
查看>>
发布高性能迷你React框架anu
查看>>