zoukankan      html  css  js  c++  java
  • 畅通工程续

     hdoj 1874

    题目大意:给出一个有向图,求从某点到另一点的最短路径

    解决:迪杰斯特拉求単源点到其它点的最短路径

    #include <iostream>
    using namespace std;
    #define N 200
    #define MAX 0xffffff
    int cost[N+10][N+10];
    int vis[N+10];
    int dist[N+10];
    int n;
    void init()
    {
        for(int i=0;i<n;i++)
          for(int j=0;j<n;j++)
           cost[i][j]=MAX;
    }
    int dijistra(int start,int end)
    {
        for(int i=0;i<n;i++)
        {
            dist[i]=cost[start][i];
            vis[i]=false;
        }
        vis[start]=1;
        dist[start]=0;
        int pre;
        for(int i=1;i<n;i++)
        {
            int min=MAX;
            for(int j=0;j<n;j++)
               if(!vis[j] && dist[j]<min){min=dist[j];pre=j;}
            vis[pre]=1;
            for(int j=0;j<n;j++)
            if(!vis[j] && min+cost[pre][j]<dist[j])
            {
                dist[j]=min+cost[pre][j];
            }
        }
        return dist[end];
    }
    int  main()
    {
        int m;
        while(cin>>n>>m)
        {
            int i,a,b,w;
            init();
            for(i=0;i<m;i++)
            {//刚开始一直wa,就是因为没写这句话
                cin>>a>>b>>w;
                if(w<cost[a][b])
                {
                    cost[a][b]=cost[b][a]=w;
                }
            }
           cin>>a>>b;
          
           int ret=dijistra(a,b);
           if (ret==MAX)cout<<"-1"<<endl;
           else  cout<<ret<<endl;
        }
      //  system("pause");
        return 0;
    }
    

  • 相关阅读:
    javascript 高级程序设计 二
    javascript 高级程序设计 一
    js 立即执行函数
    thinkphp验证器
    thinkphp5 行为(钩子)扩展
    thinkphp5控制器
    修改tp5的默认配置文件的位置
    thinkphp5 model 模型与Db
    API接口设计,rest,soap
    tp5的路由
  • 原文地址:https://www.cnblogs.com/hpustudent/p/2136788.html
Copyright © 2011-2022 走看看