洛谷图论入门题--基本题必做 图-最短路径-1.信使(msner)

Posted 秦时、长浩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛谷图论入门题--基本题必做 图-最短路径-1.信使(msner)相关的知识,希望对你有一定的参考价值。

 1 //带病打代码的我,心好累,脑子更累。 看到此代码的请给点个赞 ,谢谢。 
 2 //这个题还是比较简单的,用弗洛伊德完全就能过;
 3 /*由衷的感谢江山,帮忙看程序的错误 , 
 4 
 5  ,--^----------,--------,-----,-------^--,
 6   | |||||||||   `--------\'     |          O
 7   `+---------------------------^----------|
 8     `\\_,-------, _________________________|
 9       / XXXXXX /`|     /
10      / XXXXXX /  `\\   /
11     / XXXXXX /\\______(  
12    / XXXXXX /
13   / XXXXXX /             为山哥点赞! 
14  (________(
15   `------\'   
16 */
17 
18 
19 //洛谷炸了 
20 #include<iostream>
21 #include<cstring>
22 #include<cmath>
23 using namespace std;
24 //第一次开了100*100的数组,结果炸了。 
25 int f[5000][5000] , m , n , mmax = -1;
26 int main(){
27     cin>>n>>m;
28     //初始化,随便一个较大的数本人喜好123456789 
29      for(int i=1;i<=n;++i){
30         for(int j=1;j<=n;++j){
31             f[i][j]=123456789;
32         }
33     }
34     for(int i = 1 ; i <= m ; i ++) {
35         int x , y , z ;
36         cin>>x>>y>>z;
37         f[x][y] = z;
38         f[y][x] = z;
39     }
40     //枚举每种情况并计算 
41     for(int k = 1 ; k <= n ; k ++){
42         for(int i = 1 ; i <= n ; i ++){
43             for(int  j = 1 ; j <= n ; j ++){
44                 if(f[i][j] > f[i][k] + f[k][j] &&
45                     f[i][k] != 123456789 && f[k][j] != 5000){
46                     f[i][j] = f[i][k] + f[k][j];
47                 }
48             }
49         }
50     }
51     for(int j = 1 ; j <= n ; j ++){
52         if(f[1][j] > mmax){
53             mmax = f[1][j];    //寻找从1开始最小的一个 
54         }
55     }
56     cout<<mmax;
57     //结束 
58 } 
59 //再次感谢山哥 
60 /*
61        .__.      .==========.
62      .(\\\\//).  .-[ for you! ]
63     .(\\\\()//)./  \'==========\'
64 .----(\\)\\/(/)----.
65 |     ///\\\\\\     |
66 |    ///||\\\\\\    |
67 |   //`||||`\\\\   |
68 |      ||||      |
69 |      ||||      |
70 `------====------\'
71 */
View Code

 这个题其实用迪杰斯特拉做也是可以的,但数据规模不是太大O(n3)也能做出来,所以无所谓

好吧,这篇博客就先写这么多,毕竟时间有限,同行们看到了这篇随笔的话可以顺便看一个这个友情链接   蒟蒻  http://mrmorning.coding.me/大佬给你们助阵!

 

以上是关于洛谷图论入门题--基本题必做 图-最短路径-1.信使(msner)的主要内容,如果未能解决你的问题,请参考以下文章

算法总结图论-最短路径

图论Dijkstra Algorithm在2D空间平面网格节点图选择最短路径,networkx,Python

洛谷P1027 Car的旅行路线 计算几何 图论最短路

图论--07:最短路径shopth

图论 最短路径算法 1.Floyed-Warshall算法

图论_最短路径