zoukankan      html  css  js  c++  java
  • 多源单源最短路的模板

    待理解......

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<queue>
    #include<set>
    #include<algorithm>
    #include<map>
    #define maxn 2005
    #define inf 100000
    using namespace std;
    int n,bian;
    int mp[maxn][maxn];
    int u,v,cost;
    int dis[maxn];
    int pre[maxn];
    void init()
    {
        cin>>n>>bian;
        //memset(mp,inf,sizeof(mp));
        for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        mp[i][j]=inf;
        for(int i=0;i<bian;i++){
            cin>>u>>v;//可以加边的权值 
            cost=1;//**************
            mp[u][v]=cost;
            mp[v][u]=cost;//无向图 
        }
        for(int i=1;i<=n;i++)
        {
            dis[i]=inf;
        }
    }
    void dijkstra(int n,int v)
    {
        bool vis[maxn];
        for(int i=1;i<=n;i++)
        {
            vis[i]=false;
            dis[i]=mp[v][i];
            if(dis[i]==inf)
            {
                pre[i]=0;
            }
            else pre[i]=v;
        }
        dis[v]=0;
        vis[v]=true;
        for(int i=2;i<=n;i++)
        {
                int u=v;
                int mazz=inf;
                for(int j=1;j<=n;j++){
            if(!vis[j]&&dis[j]<mazz)//换dis最小的顶点继续查找
            {
                    u=j;
                    mazz=dis[j];
            }
            }
            vis[u]=true;
            for(int k=1;k<=n;k++)//更新顶点上的dis
            {
                if(!vis[k]&&mp[u][k]<inf)
                {
                    if(dis[k]>mp[u][k]+dis[u]){
                        dis[k]=mp[u][k]+dis[u];
                        pre[k]=u;
                    }
                }
            }
    
        }
    }
    int main()
    {
        init();//初始化,建图 
        dijkstra(末,始);//
        cout<<dis[末];
        return 0;
    }
  • 相关阅读:
    页面打印
    scala
    IntelliJ Idea 常用快捷键列表
    flume
    spring事务管理方式,aop
    oldboy es和logstash
    elasticsearch视频34季
    elasticsearch视频
    python3
    git
  • 原文地址:https://www.cnblogs.com/xiechenxi/p/8443304.html
Copyright © 2011-2022 走看看