题目https://www.luogu.org/problemnew/show/P1339

题意:给定一张图,问起点到终点的最短路。

思路:dijkstra板子题。

很久没有写最短路了。总结一下dijkstra的步骤吧。

d数组用于表示当前最短路径,vis数组用于标记当前点是否已经在最短路集合中了。

每次找到一个d最小的节点,表示他已经无法更短了,把他加入集合,用他去更新其他的节点。一共做n-1次。

  1. #include<cstdio>
  2. #include<cstdlib>
  3. #include<map>
  4. #include<set>
  5. #include<cstring>
  6. #include<algorithm>
  7. #include<vector>
  8. #include<cmath>
  9. #include<stack>
  10. #include<queue>
  11. #include<iostream>
  12.  
  13. #define inf 0x3f3f3f3f
  14. using namespace std;
  15. typedef long long LL;
  16. typedef pair<int, int> pr;
  17.  
  18. int t, c, ts, te;
  19. const int maxn = ;
  20. const int maxm = ;
  21. struct edge{
  22. int to, nxt, cost;
  23. }e[maxm * ];
  24. int head[maxn], tot;
  25.  
  26. void add(int x, int y, int w)
  27. {
  28. e[++tot].to = y;
  29. e[tot].cost = w;
  30. e[tot].nxt = head[x];
  31. head[x] = tot;
  32. e[++tot].to = x;
  33. e[tot].cost = w;
  34. e[tot].nxt = head[y];
  35. head[y] = tot;
  36. }
  37.  
  38. bool vis[maxn];
  39. int d[maxn];
  40. void dijkstra()
  41. {
  42. memset(d, 0x3f, sizeof(d));
  43. for(int i = head[ts]; i; i = e[i].nxt){
  44. d[e[i].to] = e[i].cost;
  45. }
  46. vis[ts] = true;
  47. d[ts] = ;
  48. for(int i = ; i < t; i++){
  49. int min = inf, min_id;
  50. for(int j = ; j <= t; j++){
  51. if(d[j] < min && !vis[j]){
  52. min = d[j];
  53. min_id = j;
  54. }
  55. }
  56. vis[min_id] = true;
  57. for(int i = head[min_id]; i; i = e[i].nxt){
  58. if(d[e[i].to] > min + e[i].cost){
  59. d[e[i].to] = min + e[i].cost;
  60. }
  61. }
  62. }
  63. }
  64.  
  65. int main()
  66. {
  67. scanf("%d%d%d%d", &t, &c, &ts, &te);
  68. for(int i = ; i < c; i++){
  69. int rs, re, ci;
  70. scanf("%d%d%d", &rs, &re, &ci);
  71. add(rs, re, ci);
  72. }
  73.  
  74. dijkstra();
  75. printf("%d\n", d[te]);
  76. }

洛谷P1339 热浪【最短路】的更多相关文章

  1. 洛谷P1339 热浪

    P1339 热浪 529通过 1.3K提交 题目提供者yeszy 标签图论福建省历届夏令营 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 求助...为什么是未知错误… 求修正,貌似死循环 第 ...

  2. 洛谷 P2176(最短路)

    ###题目链接 洛谷 P2176 ### 题目大意: 已知农夫从 1 走到 N 点,一定走的是最短路.问你将某条路的长度变为其两倍后,农夫从 1 走到 N 点的路程最大增加多少,输出最大增量. 分析: ...

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

    题目描述 The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for g ...

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

    嗯... 题目链接:https://www.luogu.org/problem/P1339 这道题是水的不能在水的裸最短路问题...这里用的dijkstra 但是自己进了一个坑—— 因为有些城市之间可 ...

  5. 洛谷 P1339 [USACO09OCT]热浪Heat Wave

    题目链接:https://www.luogu.org/problemnew/show/P1339 解题思路: 一道简单的最短路水题,dijkstra解法模板思路:https://www.cnblogs ...

  6. 洛谷—— P1339 [USACO09OCT]热浪Heat Wave

    P1339 [USACO09OCT]热浪Heat Wave 题目描述 The good folks in Texas are having a heatwave this summer. Their ...

  7. 洛谷 P1339 [USACO09OCT]热浪Heat Wave(dijkstra)

    题目链接 https://www.luogu.org/problemnew/show/P1339 最短路 解题思路 dijkstra直接过 注意: 双向边 memset ma数组要在读入之前 AC代码 ...

  8. 洛谷 P1339 [USACO09OCT]热浪Heat Wave (堆优化dijkstra)

    题目描述 The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for g ...

  9. 洛谷P1339 [USACO09OCT]热浪Heat Wave 题解

    题目传送门 这道题实际非常简单好奇是怎么变黄的... 其实也就是一个SPFA,本人非常懒,不想打邻接表,直接用矩阵就好啦... #include<bits/stdc++.h> using ...

随机推荐

  1. [转帖]Intel要提供2.5G的消费级以太网 价格2.4刀

    千兆网已成过去!Intel将全面普及2.5Gbps以太网 https://news.cnblogs.com/n/641736/ 硬件发展突飞猛进 投递人 itwriter 发布于 2019-10-02 ...

  2. TypeScript 高级类型

    ⒈交叉类型(Intersection Types) 交叉类型是将多个类型合并为一个类型. 这让我们可以把现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性. 例如, Person &a ...

  3. 还是a+b

    题目描述: 给定 2 个正整数 a, b,a 和 b 最多可能有 40 位,求出 a + b 的和.输入描述: 两个正整数 a, b,a 和 b 最多可能有 40 位.一行表示一个数.输出描述: a ...

  4. 使用寄存器点亮LED(第1节)—GPIO功能框图讲解

    GPIO简介 GPIO 是通用输入输出端口的简称,简单来说就是 STM32 可控制的引脚, STM32 芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯.控制以及数据采集的功能.STM32 ...

  5. SAS学习笔记5 字符截取语句(index、compress、substr、scan函数)

    index:返回一个字符串中,某个特定字符或字符串的位置,找不到时返回0 compress:从一个字符串移除特定的字符 substr函数 字符替换与提取字符 substr(s, p, n)从变量s的第 ...

  6. df执行hang住

    一.现象 在linux操作系统中,执行df -h命令,后hang住 二.思路 排查是否存在Nfs问题,无法正常挂载nfs路径导致的问题. 三.解决过程 3.1 cat /etc/rc.local #m ...

  7. 13-MySQL DBA笔记-迁移、升级、备份、恢复数据库

    第13章 迁移.升级.备份.恢复数据库本章将为读者讲述数据库的各种维护任务:迁移.升级.备份和恢复.因为每个人熟悉的工具不同,其对应的迁移.升级.备份和恢复的方式也都略有不同,本书将尽量对笔者认为最具 ...

  8. Html5+Mui前端框架,开发记录(四):下拉菜单绑定数据、搜索、时间控件

    1.下拉菜单绑定数据,选择后回传值 1)html: <div class="mui-input-row"> <label>xxx:</label> ...

  9. Bminer

    Bminer https://www.bminer.me/zh/ Bminer: When Crypto-mining Made Fast¶ Bminer是一款为NVIDIA和AMD GPU深度优化的 ...

  10. Https的作用

    在普通的网络环境下,HTTP请求存在DNS劫持.运营商插入广告.数据被窃取,正常数据被修改等安全风险.使用HTTPS协议可以保证数据传输的安全性. Https的作用:    内容加密 建立一个信息安全 ...