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

代码随想录算法【Day61】

97.小明逛公园

思路

通过 动态规划 迭代更新最短路径,每次增加一个中间点k,判断是否能通过k使i到j的距离更短。最终,在n轮迭代后,grid[start][end][n] 存储 start 到 end 的最短路径。若值为 10005(初始化的无穷大),表示两点不可达,输出 -1,否则输出最短路径长度。

代码

#include <iostream>
#include <vector>
#include <list>
using namespace std;

int main() {
    int n, m, p1, p2, val;
    cin >> n >> m;

    vector<vector<vector<int>>> grid(n + 1, vector<vector<int>>(n + 1, vector<int>(n + 1, 10005)));  
    for(int i = 0; i < m; i++){
        cin >> p1 >> p2 >> val;
        grid[p1][p2][0] = val;
        grid[p2][p1][0] = val; 
    }

    for (int k = 1; k <= n; k++) {
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                grid[i][j][k] = min(grid[i][j][k-1], grid[i][k][k-1] + grid[k][j][k-1]);
            }
        }
    }

    int z, start, end;
    cin >> z;
    while (z--) {
        cin >> start >> end;
        if (grid[start][end][n] == 10005) cout << -1 << endl;
        else cout << grid[start][end][n] << endl;
    }
}
http://www.dtcms.com/a/47211.html

相关文章:

  • Python大数据处理实验报告(二)
  • 2.数据结构:3.合并集合
  • C语言:51单片机 基础知识
  • 不能初始化photoshop,因为暂存盘已满
  • LeetCode 72 - 编辑距离 (Edit Distance)
  • 前端内存泄漏的几种情况及方案
  • 探索Spring Cloud Config:构建高可用的配置中心
  • 分类预测 | Matlab实现CPO-SVM冠豪猪算法优化支持向量机多特征分类预测
  • 【鸿蒙Next】 测试包 签名、打包、安装 整体过程记录
  • 力扣完全平方数279和力扣91解码方法的做题笔记
  • ARM Linux LCD上实时预览摄像头画面
  • VMware Ubuntu 共享目录
  • 【Go语言快速上手】第一部分:数据类型(数组、切片、映射)与控制语句
  • ​豪越科技:智慧园区后勤单位消防安全管理,实时告警与整改闭环
  • LeetCode 202. 快乐数 java题解
  • 【HTML学习笔记基础篇】
  • elpis全栈课程学习之elpis-core学习总结
  • Virtual Box虚拟机安装Mac苹果Monterey和big sur版本实践
  • UI设计——新拟态手机主题锁屏设计分享
  • vmware安装firepower ftd和fmc
  • 计算机毕业设计SpringBoot+Vue.js网上摄影工作室管理系统(源码+文档+PPT+讲解)
  • vector 面试点总结
  • 【Python机器学习】1.2. 线性回归理论:一元线性回归、最小化平方误差和公式(SSE)、梯度下降法
  • C++ 类和对象(上)
  • 使用 REINFORCE 算法强化梯度策略
  • AcWing 蛋糕游戏
  • CSS3(媒体查询、媒体类型、媒体特性、媒体运算符、BFC)
  • Pytest之parametrize参数化
  • 如何使用Spring Boot框架整合Redis:超详细案例教程
  • Java数据结构第十六期:走进二叉树的奇妙世界(五)