POJ3278

来源:互联网 发布:校园网络使用代理软件 编辑:程序博客网 时间:2024/06/05 13:30

简单一维BFS

#include <stdio.h>#include <math.h>#include <string.h>#include <stdlib.h>#define max(a,b) (a)>(b)?(a):(b)#define min(a,b) (a)<(b)?(a):(b)#define ll long long#define ul unsigned long long#define sd(n) scanf("%d",&(n))#define pd(n) printf("%d\n",(n))#define INF 1000000000int N,K;int q[100005];int d[100005];int dx[3]={1,-1,0};int bfs(){    int head=0;    int tail=1;    q[head]=N;    int now;    for(int i=0;i<=100000;i++)        d[i]=INF;    d[N]=0;    while(head<tail)    {        now=q[head++];        for(int i=0;i<3;i++)        {            int nx=now+(dx[i]?dx[i]:now);            if(nx>=0&&nx<=100000&&d[nx]==INF)            {                q[tail++]=nx;                d[nx]=d[now]+1;            }        }    }    return d[K];}int main(){    scanf("%d%d",&N,&K);    printf("%d\n",bfs());}
0 0
原创粉丝点击