题目背景

2018 年 7 月 19 日,某位同学在 NOI Day 1 T1 归程 一题里非常熟练地使用了一个广为人知的算法求最短路。

然后呢?

100 \rightarrow 60100→60;

\text{Ag} \rightarrow \text{Cu}Ag→Cu;

最终,他因此没能与理想的大学达成契约。

小 F 衷心祝愿大家不再重蹈覆辙。

题目描述

给定一个 nn 个点,mm 条有向边的带非负权图,请你计算从 ss 出发,到每个点的距离。

数据保证你能从 ss 出发到任意点。

输入格式

第一行为三个正整数 n, m, sn,m,s。 第二行起 mm 行,每行三个非负整数 u_i, v_i, w_iui​,vi​,wi​,表示从 u_iui​ 到 v_ivi​ 有一条权值为 w_iwi​ 的有向边。

输出格式

输出一行 nn 个空格分隔的非负整数,表示 ss 到每个点的距离。

输入输出样例

输入 #1复制

4 6 1
1 2 2
2 3 2
2 4 1
1 3 5
3 4 3
1 4 4

输出 #1复制

0 2 4 3

说明/提示

样例解释请参考 数据随机的模板题。

1 \leq n \leq 10^51≤n≤105;

1 \leq m \leq 2\times 10^51≤m≤2×105;

s = 1s=1;

1 \leq u_i, v_i\leq n1≤ui​,vi​≤n;

0 \leq w_i \leq 10 ^ 90≤wi​≤109,

0 \leq \sum w_i \leq 10 ^ 90≤∑wi​≤109。

本题数据可能会持续更新,但不会重测,望周知。

2018.09.04 数据更新 from @zzq

思路:这道题会故意卡掉SPFA算法,因此我们需要采用优化版的Dijkstra算法。

#include<queue>
#include<vector>
#include<string>
#include<math.h>
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
#define ll long long
#define mod 1000000007
#define maxn 500050
int n,m,start,vis[maxn];
ll dis[maxn];
struct node{int to;ll val;node(int to,ll val):to(to),val(val){}
};
struct cmp{bool operator()(node a,node b){return a.val>b.val;}
};
priority_queue<node,vector<node>,cmp> qq;
vector<node> q[maxn];
int main(void){int x,y,z;scanf("%d%d%d",&n,&m,&start);for(int i=0;i<m;i++){scanf("%d%d%d",&x,&y,&z);q[x].push_back(node(y,z));}for(int i=1;i<=n;i++)dis[i]=(1<<31)-1;dis[start]=0;qq.push(node(start,0));while(!qq.empty()){node now=qq.top();qq.pop();if(vis[now.to])continue;vis[now.to]=1;for(int i=0;i<q[now.to].size();i++){int v=q[now.to][i].to;ll val=q[now.to][i].val;if(dis[v]>dis[now.to]+val){dis[v]=dis[now.to]+val;if(!vis[v])qq.push(node(v,dis[v]));}}}for(int i=1;i<n;i++)printf("%lld ",dis[i]);printf("%lld\n",dis[n]);return 0;}

洛谷OJ:P4779 【模板】单源最短路径(标准版)相关推荐

  1. p4779 单源最短路径(标准版)-java版

    传送门: P4779 [模板]单源最短路径(标准版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P4779 先给 ...

  2. p3371 单源最短路径(弱化版)-java题解-最短路

    弱化版传送门: P3371 [模板]单源最短路径(弱化版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目背景 本题测试数据为随机数据,在考试中可能会出现构造数据让SPFA不通 ...

  3. 洛谷 P3371 【模板】单源最短路径(弱化版)【最短路】【spfa】

    洛谷 P3371 [模板]单源最短路径(弱化版) 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 四.其它题解 一.题目链接 洛谷 P3371 [模板]单源最短路径(弱化版) ...

  4. 洛谷_P3371 【模板】单源最短路径(弱化版)_dijkstra_堆优化

    洛谷_P3371 [模板]单源最短路径(弱化版)_dijkstra_堆优化 // dijkstra最短路算法_堆优化 #include<bits/stdc++.h> using names ...

  5. P4779 【模板】单源最短路径(标准版)

    # [模板]单源最短路径(标准版) ## 题目背景 2018 年 7 月 19 日,某位同学在 [NOI Day 1 T1 归程](https://www.luogu.org/problemnew/s ...

  6. Luogu 3371【模板】单源最短路径

    Luogu 3371[模板]单源最短路径 第一次写博客用图论题来试一试 接下来是正文部分 题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 输入输出格式 输入格式: 第一行包 ...

  7. 最短路——【模板】单源最短路径(弱化版)(dijkstra)

    题目链接 最短路--[模板]单源最短路径(弱化版)(dijkstra) 题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 输入格式 第一行包含三个整数 n,m,s,分别表示点 ...

  8. P3371 【模板】单源最短路径(弱化版)

    题目 P3371 [模板]单源最短路径(弱化版) 分析 Dijkstra模板题,只不过这里用了链式前向星 AC代码 #include<cstdio> #include<iostrea ...

  9. 洛谷oj题单【入门2】分支结构-入门难度(Java)

    洛谷oj题单[入门2]分支结构-入门难度(Java) 来源:https://www.luogu.com.cn/training/101#problems P5709 [深基2.习6]Apples Pr ...

  10. Dijkstra算法求解单源最短路径问题

    文章目录 一 前言 二 Dijkstra 算法讲解 1. 贪心算法的证明 2. 算法实现说明 3. 初版Dijkstra算法代码 三 时间复杂度优化 1. 优化策略 2. 优化后的代码 四 结语 一 ...

最新文章

  1. 微信开发文档笔记整理(一)
  2. mysql为什么直接8.0_为什么要迁移到MySQL8.0?
  3. Python爬虫-Scrapy-CrawlSpider与ItemLoader
  4. appcan+html查看效果,appcan常用的窗口方法
  5. 有一个包含主函数的java类_重新认识Java中的程序入口即主函数各组成部分
  6. leetcode404. 左叶子之和
  7. DropBox 超实用的免费文件网络同步、备份、分享工具
  8. ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number;
  9. 同为数据分析师,有人14k,你却6k?
  10. Unity 基础 之 特殊文件夹
  11. cdoj1633 去年春恨却来时,落花人独立,微雨燕双飞
  12. C语言计算内部回报率(或名内部收益率)(IRR)
  13. 机器学习(课堂笔记)Day01:机器学习相关概念简介
  14. 移动硬盘装ubuntu
  15. tree是不是动词_tree是什么意思!
  16. Java-设计模式之调停者模式
  17. html中无语义的标签,HTML语义类标签都有哪些?
  18. 前后端离线开发相关软件下载地址大全
  19. v-if和v-show的区别
  20. --如何用PhotoShop制作真人头像表情包--

热门文章

  1. 【Spacy教程】统计模型任务和匹配模板Matcher
  2. U盘安装Ubuntu失败
  3. 【T+】畅捷通T+在运行时sqlserver占用内存过大,导致电脑卡顿。
  4. 遍历getElementsByClassName
  5. blockly 工具箱
  6. 智能车图像处理去畸变教程
  7. c语言 汉宁窗,汉宁窗设计线性相位FIR低通数字滤波器.docx
  8. css 怎样设置虚线,css生成可控虚线的方法
  9. java计算机毕业设计高校公共资源管理源码+mysql数据库+系统+lw文档+部署
  10. 使用Palette优化界面色彩搭配 Jetpack