zoukankan      html  css  js  c++  java
  • 数据结构之bfs

    宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。

    poj3278

    思路:根节点n,        n+1,n-1,2*n三个子节点不断地延伸,目标节点k,寻找这样一天最短的路

    代码:

    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    using namespace std;
    struct node
    {
        int x;
        int ans;
    }q[1000005];
    int jx[]= {-1,1};
    int n,k;
    int map[1000005],v[1000005];

     void bfs()
    {
        struct node t,f;
        int e=0,s=0;
        t.x=n;
        v[t.x]=1;
        t.ans=0;
        q[e++]=t;
        while(s<e)
        {
            t=q[s++];
            if(t.x==k)
            {
                printf("%d ",t.ans);
                break;
            }

         for(int i=0; i<3; i++)
            {
                if(i==2)
                    f.x=t.x*2;
                else f.x=t.x+jx[i];
                if(!v[f.x]&&f.x>=0&&f.x<=100000)
                {
                    f.ans=t.ans+1;
                    q[e++]=f;
                    v[f.x]=1;
                }
            }
        }
    }
    int main()
    {
        while(scanf("%d%d",&n,&k)!=EOF)
        {
            memset(map,0,sizeof(map));
            memset(v,0,sizeof(v));
            bfs();
        }
        return 0;
    }

  • 相关阅读:
    shell 学习笔记 LinuxShell脚本攻略(第2版)
    [六省联考2017]分手是祝愿
    [SDOI2010]粟粟的书架
    [CQOI2018]解锁屏幕
    [SCOI2007]最大土地面积
    CF369E Valera and Queries
    CF817F MEX Queries
    [HEOI2016/TJOI2016]求和
    [CQOI2018]九连环
    [HNOI2015]亚瑟王
  • 原文地址:https://www.cnblogs.com/ACWQYYY/p/4374558.html
Copyright © 2011-2022 走看看