zoukankan      html  css  js  c++  java
  • BFS SDUT 图结构练习——BFS——从起始点到目标点的最短步数

    fro < re 然后用结构体记录上一步的步数。
     
    View Code
    图结构练习——BFS——从起始点到目标点的最短步数
    
    #include<stdio.h>
    #include<string.h>
    int map[1005][1005];
    struct node
    {
        int i;
        int count;
    } q[2005];
    int pro[1005];
    int fro;
    int re;
    int main()
    {
        int d,e,s,i,j,a,b,t;
        while(scanf("%d %d",&d,&e) != EOF)
        {
            memset(map,0,sizeof(map));
            memset(pro,0,sizeof(pro));
            for(i = 0;i < e;i++)
            {
                scanf("%d %d",&a,&b);
                map[a][b] = 1;
            }
    
            fro = 0;
            re = 0;
            pro[d] = 1;
            q[re].count = 0;
            q[re++].i = d;
            int leap = 1;
    
            while(fro < re)
            {
                int num;
                int v;
                v = q[fro].i;
                num = q[fro].count;
                fro++;
    
                pro[v] = 1;
                for(i = 1;i <= d;i++)
                {
                    if(map[v][i] == 1 && !pro[i])
                    {
                        q[re].i = i;
                        q[re].count = num+1;
                        if(i == 1)
                        {
                            leap = 0;
                            break;
                        }
                        re++;
                        pro[i] = 1;
                    }
                }
                if(!leap)
                break;
            }
            if(leap)
            puts("NO");
            else
            printf("%d\n",q[re].count);
        }
    
        return 0;
    }
  • 相关阅读:
    TCP之Nagle算法与TCP_NODELAY
    CSPS模拟 87
    CSPS模拟 86
    CSPS模拟 85
    CSPS模拟 84
    CSPS模拟 83
    CSPS模拟 82
    CSPS模拟 81
    CSPS模拟 80
    CSPS模拟 79
  • 原文地址:https://www.cnblogs.com/0803yijia/p/2612402.html
Copyright © 2011-2022 走看看