zoukankan      html  css  js  c++  java
  • 深夜补最短路!

    嘻嘻!

    https://cn.vjudge.net/contest/323530#problem/A

    show the code:

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #define maxn 1005
    using namespace std;
    const int inf=0x3f3f3f3f;
    int dis[maxn],vis[maxn];
    int mp[maxn][maxn];
    int n;
    void init()
    {
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
            {
                if(i==j)
                    mp[i][j]=0;
                else
                    mp[i][j]=inf;
            }
    }
    int djs(int st,int ed)
    {
        for(int i=1;i<=n;i++)
        {
            dis[i]=mp[st][i];
            vis[i]=0;
        }
        vis[st]=1;
        for(int i=1;i<n;i++)
        {
            int minn=inf;
            int next=-1;
            for(int j=1;j<=n;j++)
            {
                if(vis[j]==0&&dis[j]<minn)
                {
                    minn=dis[j];
                    next=j;
                }
            }
            if(next==-1)  continue;
            vis[next]=1;
            for(int j=1;j<=n;j++)
            {
                if(vis[j]==0)
                    dis[j]=min(dis[j],dis[next]+mp[next][j]);
            }
        }
        return dis[ed];
    }
    int main()
    {
    	//无向图中边的个数为t,点的个数为n。 
        int t,a,b,x;
        while(~scanf("%d%d",&t,&n))
        {
            memset(mp,inf,sizeof(mp));
            while(t--)
            {
                scanf("%d%d%d",&a,&b,&x);//起点a,终点b,权值x。 
                mp[a][b]=min(x,mp[a][b]);//可以当板子丫! 
                mp[b][a]=min(x,mp[b][a]);
            }
            printf("%d
    ",djs(1,n));
        }
    }
    

      

  • 相关阅读:
    并发量,tps,qps
    MYSQL安装和配置
    python 生成随机数的几种方法
    python 判断是字母的多种方法
    python实战,
    linux工作常用命令
    apache http server安装
    .py与.pyc文件区别
    上传本地文件到linux
    ms
  • 原文地址:https://www.cnblogs.com/dragondragon/p/11450777.html
Copyright © 2011-2022 走看看