zoukankan      html  css  js  c++  java
  • hihoCoder#1081 最短路径·一

    原题地址

    Dijkstra算法,甚至都不用优化(堆或优先队列)即可过

    代码:

     1 #include <iostream>
     2 #include <vector>
     3 #include <set>
     4 #include <cstring>
     5 
     6 using namespace std;
     7 
     8 #define MAX_POINT 1024
     9 #define MAX_EDGE 16384
    10 
    11 int N, M, S, T;
    12 int graph[MAX_POINT][MAX_POINT];
    13 int v[MAX_POINT];
    14 
    15 void bfs() {
    16   v[S] = 1;
    17   while (true) {
    18     int k = 0;
    19     for (int i = 1; i <= N; i++) {
    20       if (!v[i] && graph[S][i] < graph[S][k])
    21         k = i;
    22     }
    23     if (k == T)
    24       break;
    25     v[k] = 1;
    26     for (int i = 1; i <= N; i++)
    27       if (!v[i] && graph[S][i] > graph[S][k] + graph[k][i])
    28         graph[S][i] = graph[S][k] + graph[k][i];
    29   }
    30 }
    31 
    32 int main() {
    33   memset(v, 0, sizeof(v));
    34   memset(graph, 64, sizeof(graph));
    35 
    36   scanf("%d%d%d%d", &N, &M, &S, &T);
    37   for (int i = 0; i < M; i++) {
    38     int u, v, len;
    39     scanf("%d%d%d", &u, &v, &len);
    40     graph[u][v] = graph[v][u] = min(graph[u][v], len);
    41   }
    42 
    43   bfs();
    44 
    45   printf("%d
    ", graph[S][T]);
    46 }
  • 相关阅读:
    MySQL-5.7.26解压版安装教程
    asp.net core 系列之Configuration
    java之初识hibernate
    java框架学习系列
    java之struts2之异常处理
    java之struts2之ajax
    java之servlet之文件下载
    列出连通集
    幸运数
    英文单词排序
  • 原文地址:https://www.cnblogs.com/boring09/p/4396502.html
Copyright © 2011-2022 走看看