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;
    }

  • 相关阅读:
    Spring boot核心注解
    Spring-boot配置文件
    JAVA操作Excel
    操作系统之基础
    Batch Normalization
    解决ios微信页面回退不刷新的问题
    textarea高度自适应,随着内容增加高度增加
    旋转卡 可以用做登录注册
    一个页面tab标签切换,都有scroll事件的解决办法
    input type="radio" 赋值问题
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/3671781.html
Copyright © 2011-2022 走看看