zoukankan      html  css  js  c++  java
  • 最短路模版--迪杰斯特拉

    #include <stdio.h>
    #include <string.h>
    int map[200][200],v[200],dis[200];
    int n,s,t;
    #define N 100001
    void DJ()
    {
        int i,j,k,min;
        memset(v,0,sizeof(v));
        memset(dis,0,sizeof(dis));

        for(i=0;i<n;i++)
            dis[i]=map[s][i];
        for(i=0;i<n;i++)
        {
            min=N;
            for(j=0;j<n;j++)
                {
                    if(!v[j]&&dis[j]<min)
                    {
                        k=j;
                        min=dis[j];
                    }
                }
             if(min==N)  break;
             v[k]=1;
             for(j=0;j<n;j++)
             {
                 if(!v[j]&&dis[k]+map[k][j]<dis[j])
                 {
                     dis[j]=map[k][j]+dis[k];
                 }
             }

        }
        if(dis[t]==N)  printf("-1 ");//....
        else printf("%d ",dis[t]);

    }
    int main()
    {

        int m,i,j,u,v,x;
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            for(i=0;i<n;i++)
            {
                for(j=0;j<n;j++)
                {
                    map[i][j]=N;
                    map[j][i]=N;
                }
                map[i][i]=0;
            }
            while(m--)
            {
                scanf("%d%d%d",&u,&v,&x);
                if(map[u][v]>x)
                {
                    map[u][v]=x;
                    map[v][u]=x;
                }
            }
            scanf("%d%d",&s,&t);
            DJ();
        }
        return 0;
    }

  • 相关阅读:
    一个好的时间函数
    Codeforces 785E. Anton and Permutation
    Codeforces 785 D. Anton and School
    Codeforces 510 E. Fox And Dinner
    Codeforces 242 E. XOR on Segment
    Codeforces 629 E. Famil Door and Roads
    Codeforces 600E. Lomsat gelral(Dsu on tree学习)
    Codeforces 438D The Child and Sequence
    Codeforces 729E Subordinates
    【ATcoder】D
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/3671781.html
Copyright © 2011-2022 走看看