2016春季练习——bfs简单题
来源:互联网 发布:图像语义分割 python 编辑:程序博客网 时间:2024/04/28 18:37
来源:POJ3278
就是一个bfs,一开始还想,我要是vis标记了,以后怎么办。。。果然还是没有离开dfs的影响。。。还要多多学习。
还有一个注意点,就是如何记录我们的步数,这个用数组的方法有推广意义,注意多多学习。
代码:
#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;const int MAXN= 100000+10;bool vis[MAXN];int step[MAXN];queue<int>q;int n,k;int bfs(){ int temp,n1; int cnt=0,i; step[cnt]=0; if(n==k)return 0; while(!q.empty()){ temp=q.front(); q.pop(); for(i=0;i<3;i++){ if(i==0) n1=temp+1; else if(i==1) n1=temp-1; else if(i==2) n1=temp*2; if(n1>MAXN||n1<0) continue; if(!vis[n1]){ if(n1==k){ return step[temp]+1; } else{ step[n1]=step[temp]+1; q.push(n1); vis[n1]=true; } } } }}int main(){while(scanf("%d%d",&n,&k)!=EOF){ memset(vis,false,sizeof(vis)); memset(step,0,sizeof(step)); while(!q.empty())q.pop(); q.push(n); vis[n]=0; cout<<bfs()<<endl;}return 0;}
1 0
- 2016春季练习——bfs简单题
- 2016春季练习——水题数论
- 2016春季练习——水题排序小贪心
- 2016春季练习——贪心
- 2016春季练习——贪心
- 2016春季练习——水题
- 2016春季练习——二次筛
- 2016春季练习——dfs爆搜
- 2016春季练习——位运算
- 2016春季练习——母函数
- 2016春季练习——拓扑排序
- 2016春季练习——DP
- 2016春季练习——二分+贪心
- 2016春季练习——DP
- 2016春季练习——树状数组
- 2016春季练习——DP水题
- 2016春季练习——DP水题
- 2016春季练习——复习无聊
- 大整数乘法-分治
- HDOJ 2046 骨牌铺方格
- [JSTDG]JavaScript函数
- 三子棋游戏(c语言实现)
- 【学习笔记】高性能MySQL(第三版)——第2章:MySQL基准测试
- 2016春季练习——bfs简单题
- 单链表各种操作,VS2013+番茄插件写着真爽
- linux下安装JDK和tomcat以及遇到的误区
- chrome浏览器远程调试手机页面
- MyBatis关于识别器和缓存的简单理解
- 面试准备
- Spring3自定义环境配置 <beans profile="">
- 南阳理工学院软件月赛
- qt 中 c 编译选项/链接库如何链接