POJ 3278(BFS)

来源:互联网 发布:在线字体设计软件 编辑:程序博客网 时间:2024/05/29 10:18

题目链接:http://poj.org/problem?id=3278

特别水的一道BFS...

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<queue>using namespace std;const int INF=0x3f3f3f3f;const int maxn=100010;int T,n,m,k;int x[maxn];bool vis[maxn];struct node{int x;int step;};void bfs(){queue<node>q;node s,e;s.x=n,s.step=0;vis[s.x]=1;q.push(s);while(!q.empty()){s=q.front();q.pop();if(s.x==k){printf("%d\n",s.step);return ;}e.step=s.step+1;e.x=s.x-1;if(e.x>=0&&!vis[e.x]){vis[e.x]=1;q.push(e);}e.x=s.x+1;if(e.x<=100000&&!vis[e.x]){vis[e.x]=1;q.push(e);}e.x=2*s.x;if((e.x>=0&&e.x<=100000)&&!vis[e.x]){vis[e.x]=1;q.push(e);}}}int main(){#ifndef ONLINE_JUDGEfreopen("test.in","r",stdin);freopen("test.out","w",stdout);#endifwhile(~scanf("%d%d",&n,&k)){memset(vis,0,sizeof(vis));bfs();}return 0;}


0 0
原创粉丝点击