• 洛谷 P1339 [USACO09OCT]热浪Heat Wave(最短路)


    嗯...

     

    题目链接:https://www.luogu.org/problem/P1339

     

    这道题是水的不能在水的裸最短路问题...这里用的dijkstra

    但是自己进了一个坑——

      因为有些城市之间可能还没有道路,自己只是将其初始化为0,而应该初始化为0x3f3f,从而表示两个城市之间没有道路...

    AC代码:

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<cstring>
     5 
     6 using namespace std;
     7 const int inf = 0x3f3f;
     8 int n, c, ts, te, dis[2505], vis[2505], g[5005][5005];
     9 
    10 inline void dijkstra(int x){
    11     for(int i = 1; i <= n; i++) dis[i] = (i == x ? 0 : inf);
    12     for(int i = 1; i <= n; i++){
    13         int t = 0, y = inf;
    14         for(int j = 1; j <= n; j++) if(!vis[j] && dis[j] <= y) y = dis[t = j]; 
    15         vis[t] = 1;
    16         for(int j = 1; j <= n; j++) dis[j] = min(dis[j], dis[t] + g[t][j]);
    17     }
    18 }
    19     
    20 
    21 int main(){
    22     memset(g, 0x3f3f, sizeof(g));//初始化!!
    23     scanf("%d%d%d%d", &n, &c, &ts, &te);
    24     for(int i = 1; i <= c; i++){
    25         int u, v, w;
    26         scanf("%d%d%d", &u, &v, &w);
    27         g[u][v] = g[v][u] = w;
    28     }
    29     dijkstra(ts);
    30     printf("%d", dis[te]);
    31     return 0;
    32 }
    AC代码
  • 相关阅读:
    MySql学习
    python学习笔记
    关于字符编码的理解
    session与cookie
    常用的表单元素
    Linq基础
    发送邮件。。
    进程与线程
    winform知识点集合
    winform基础与简单的窗体
  • 原文地址:https://www.cnblogs.com/New-ljx/p/11290997.html
Copyright © 2020-2023  润新知