当前位置: 首页 > news >正文

A - 最短路径

给出一张包含 n 个节点、 m 条边的无向图,请你求出图上两点 s,t 间的最短路径长度。

(请大家自行处理重边和自环)

Input

第一行两个数 n,m ,分别表示节点数和边数,以空格隔开,其中1≤n≤500,1≤m≤50000 ;
之后 m 行,每行 3 个数 u,v,w[i] ,表示点 u 和 v 间有一条权值为 w[i] 的边,
其中1≤u,v≤n ,1≤w[i]≤500000 ;最后一行,两个数 s,t 表示选择的两个点,以空格隔开。

Output

输出一个数,表示 s,t 间最短路径的长度。

Data Description

对于 27% 的数 n≤10 , m≤50 ;
对于 70% 的数据, n≤100 ,m≤5000 ;
对于 100% 的数据,n≤500 ,m≤50000 ,1≤w[i]≤500000 ;

Sample 1

InputcopyOutputcopy
4 3
1 2 6
1 3 4
2 4 2
3 4
12
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 510;
const int INF = 0x3f3f3f3f;
int a[N][N];int n, m;void floyd()
{for (int k = 1; k <= n; k++)for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++)a[i][j] = min(a[i][j], a[i][k] + a[k][j]);
}int main()
{memset(a, INF, sizeof a);cin >> n >> m;for (int i = 1; i <= m; i++){int num1, num2, num3;cin >> num1 >> num2 >> num3;a[num1][num2] = a[num2][num1] = min(a[num1][num2],num3);}floyd();for(int i=1;i<=n;i++) a[i][i] = 0;int num3, num4;cin >> num3 >> num4;cout << a[num3][num4] << endl;
}

 

http://www.lryc.cn/news/144318.html

相关文章:

  • 自然语言处理(三):基于跳元模型的word2vec实现
  • 1.1 数据库系统简介
  • WebGL 绘制圆点
  • 迅为RK3588开发板Android12 设置系统默认不锁屏
  • 香港服务器速度快的原因
  • 过滤器,监听器与拦截器的区别
  • clickhouse ssb-dbgen数据构造 及 clickhouse-benchmark简单压测
  • 【数据分析】统计量
  • 【通用消息通知服务】0x4 - 目前进展 阶段复盘
  • vue若依导出word文件,简单的实现
  • 【LeetCode75】第四十题 最大层内元素和
  • 脱离束缚:数字化工厂中ARM控制器的革命性应用!
  • queue ide is not exists in YARN
  • 【C++】UDP通信:客户端向服务端发送消息并接收服务端回应的消息
  • RabbitMq深度学习
  • EasyExcel自定义字段对象转换器支持转换实体和集合实体
  • Linux重置ROOT密码(CentOS)
  • 【Spring】一文带你彻底搞懂IOC、AOP
  • 国际旅游网络的大数据分析(数学建模练习题)
  • 音视频技术开发周刊 | 308
  • 多旋翼飞控底层算法开发系列实验 | 多旋翼动力系统设计实验3
  • Redis之Sentinel(哨兵)机制
  • 加密的PDF文件,如何解密?
  • 【java】获取当前年份
  • 前端面试话术集锦第一篇
  • NeRFMeshing - 精确提取NeRF中的3D网格
  • 后端面试话术集锦第五篇:rabbitmq面试话术
  • Spring Boot(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot 前后端分离)【一】
  • vue3之reactive和ref学习篇
  • 【推荐】Spring与Mybatis集成整合