zoukankan      html  css  js  c++  java
  • HDOJ1874 ( 畅通工程续 ) 【单源最短路径】

    Problem : 1874 ( 畅通工程续 )     Judge Status : Accepted
    RunId : 5991510    Language : C++    Author : qq1203456195
    Code Render Status : Rendered By HDOJ C++ Code Render Version 0.01 Beta
     1 /*Dijstra*/
     2 #include <iostream>
     3 #include <cstring>
     4 #include <cstdlib>
     5 using namespace std;
     6 #define MAX 0x3f3f3f3f
     7 #define max 202
     8 int map[max][max],visited[max];
     9 
    10 int main()
    11 {
    12     int n,m,i,j,a,b,d;
    13     while(cin>>n>>m)
    14     {
    15         memset(map,MAX,sizeof(map));
    16         for(i=0;i<n;i++)
    17         {
    18             visited[i]=0;//访问标志位
    19             map[i][i]=0;//注意
    20         }
    21         while(m--)
    22         {
    23             cin>>a>>b>>d;
    24             if(map[a][b]>d) map[a][b]=map[b][a]=d; /*注意可能会有多条路*/
    25         }
    26         cin>>a>>b;//s 和 t
    27         int min,u;
    28         visited[a]=1;
    29         for(i=0;i<n;i++)
    30         {
    31             min=MAX;
    32             for(j=0;j<n;j++)
    33             {
    34                 if(!visited[j]&&min>map[a][j])//j没有被访问,且和a之间的距离最短,记录为u
    35                 {
    36                     min=map[a][j];//min为a到j的距离
    37                     u=j;
    38                 }
    39             }
    40             visited[u]=1;//u被访问了
    41             for(j=0;j<n;j++)//更新a的邻接点
    42             {
    43                 if(!visited[j]&&min+map[u][j]<map[a][j])//j没有被访问,并且min+map[u][j]<map[a][j]
    44                     map[a][j]=min+map[u][j];
    45             }
    46         }
    47         if(map[a][b]<MAX)    cout<<map[a][b]<<endl;
    48         else  cout<<"-1"<<endl;
    49     }
    50     return 0;
    51 }
    字节跳动内推

    找我内推: 字节跳动各种岗位
    作者: ZH奶酪(张贺)
    邮箱: cheesezh@qq.com
    出处: http://www.cnblogs.com/CheeseZH/
    * 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    网站构建前期知识掌握
    Lucene学习之CURD
    Lucene学习之初步了解
    jQuery的extend详解
    jQuery和DOM对象之间的转换
    Tomcat教程
    Log4j配置
    Java学习之Java中常用对象
    Java学习之Comparable与Comparator的区别
    测试工具。
  • 原文地址:https://www.cnblogs.com/CheeseZH/p/2517226.html
Copyright © 2011-2022 走看看