• HDOJ1874(畅通工程续)


    题目链接

    求单源最短路的题,因为边权非负,所以可以用dijkstra。这题有一点需要注意的地方是有重边,在读数据时取较小的即可。

    View Code
     1 #include <stdio.h>
     2 #include <string.h>
     3 #define MIN(a,b)    ((a)<(b)?(a):(b))
     4 #define N 200
     5 #define INF 2000000
     6 int g[N][N];
     7 int dist[N];
     8 int n,m;
     9 char vis[N];
    10 void dijkstra(int u)
    11 {
    12     int i,min,k,v;
    13     memset(vis,0,sizeof(vis));
    14     for(i=0;i<n;i++)    dist[i]=(i==u?0:INF);
    15     for(i=0;i<n;i++)
    16     {
    17         min=INF;
    18         for(v=0;v<n;v++)    if(!vis[v]&&dist[v]<=min)    min=dist[k=v];
    19         vis[k]=1;
    20         for(v=0;v<n;v++)    dist[v]=MIN(dist[v],dist[k]+g[k][v]);
    21     }
    22 }
    23 int main()
    24 {
    25     int i,a,b,d,s,t;
    26     while(~scanf("%d%d",&n,&m))
    27     {
    28         for(a=0;a<n;a++)
    29         {
    30             for(b=a+1;b<n;b++)    g[a][b]=g[b][a]=INF;
    31         }
    32         for(i=0;i<m;i++)    scanf("%d%d%d",&a,&b,&d),g[a][b]=g[b][a]=MIN(d,g[a][b]);
    33         scanf("%d%d",&s,&t);
    34         dijkstra(s);
    35         if(dist[t]<INF) printf("%d\n",dist[t]);
    36         else    printf("-1\n");
    37     }
    38     return 0;
    39 }
  • 相关阅读:
    rpm的制作 spec文件写法
    RPM 打包技术与典型 SPEC 文件分析
    生成器
    闭包
    内置函数
    函数递归
    高阶函数
    匿名函数
    文件操作
    bytes
  • 原文地址:https://www.cnblogs.com/algorithms/p/2460715.html
Copyright © 2020-2023  润新知