49、Floyd求最短路

Floyd求最短路

题目描述

给定一个n个点m条边的有向图,图中可能存在重边和自环,边权可能为负数。

再给定k个询问,每个询问包含两个整数x和y,表示查询从点x到点y的最短距离,如果路径不存在,则输出“impossible”。

数据保证图中不存在负权回路。

输入格式

第一行包含三个整数n,m,k

接下来m行,每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。

接下来k行,每行包含两个整数x,y,表示询问点x到点y的最短距离。

输出格式

共k行,每行输出一个整数,表示询问的结果,若询问两点间不存在路径,则输出“impossible”。

数据范围

1 ≤ n ≤ 200 , 1≤n≤200, 1n200,
1 ≤ k ≤ n 2 1≤k≤n^2 1kn2
1 ≤ m ≤ 20000 , 1≤m≤20000, 1m20000,
图中涉及边长绝对值均不超过10000。

输入样例:3 3 2
1 2 1
2 3 2
1 3 1
2 1
1 3输出样例:impossible
1

Solution

import java.util.*;
import java.io.*;
import java.math.*;class Main{static final int N = 210;static final int INF = 0x3f3f3f3f;static int[][] g = new int[N][N];// floyd 算法public static void floyd(int n){for(int k = 1; k <= n; k++)for(int i = 1; i <= n; i++)for(int j = 1; j <= n; j++)g[i][j] = Math.min(g[i][j], g[i][k] + g[k][j]);}public static void main(String[] args) throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));String[] s = br.readLine().split(" ");int n = Integer.parseInt(s[0]);int m = Integer.parseInt(s[1]);int k = Integer.parseInt(s[2]);// 邻接矩阵初始化for (int i = 1; i <= n; i ++ )for (int j = 1; j <= n; j ++ )if (i == j) g[i][j] = 0;else g[i][j] = INF;while(m-- > 0){s = br.readLine().split(" ");int x = Integer.parseInt(s[0]);int y = Integer.parseInt(s[1]);int z = Integer.parseInt(s[2]);g[x][y] = Math.min(g[x][y], z);}floyd(n);while(k-- > 0){s = br.readLine().split(" ");int x = Integer.parseInt(s[0]);int y = Integer.parseInt(s[1]);if(g[x][y] > INF / 2) bw.write("impossible\n");else bw.write(g[x][y] + "\n");}bw.close();br.close();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/20450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RestTemplate中multipart form data传多个参数的处理办法

应用场景 前端请求后端上传单个或多个文件&#xff0c;同时携带其他参数&#xff0c;后端再转发到第三方服务。 思路 拿到前端提交的multipart参数读取参数并区分文件/其他参数请求第三方 实现 拿到前端提交的参数并解析到MultiValueMap&#xff1a; private static Mult…

【Ubuntu】100 系统字体安装和更改

系统&#xff1a;Ubuntu18.04LTS 1 Why we need&#xff1f; 写这篇经验贴的原因&#xff1a; ①我需要装一下中文字体&#xff08;Qt要用&#xff09;&#xff1b; ②想调一下字体大小和默认中文字体的样式 2 装第三方字体 Step1&#xff1a;安装软件Font Manager sudo ap…

【记录】打印|用浏览器生成证件照打印PDF,打印在任意尺寸的纸上(简单无损!)

以前我打印证件照的时候&#xff0c;我总是在网上找在线证件照转换或者别的什么。但是我今天突然就琢磨了一下&#xff0c;用 PDF 打印应该也可以直接打印出来&#xff0c;然后就琢磨出来了&#xff0c;这么一条路大家可以参考一下。我觉得比在线转换成一张 a4 纸要方便的多&am…

Echarts 让柱状图在图表中展示,离开X轴

文章目录 需求分析需求 分析 话不多说,直接源码展示 option = {title: {text: Waterfall Chart,subtext: Li

落地台灯有什么作用?五款口碑好的落地台灯推荐

落地台灯有什么作用&#xff1f;面对长时间工作、学习已成为当代年轻人的真实写照&#xff0c;据目前不完全统计&#xff0c;60%以上的人群每天用眼时间都已经超过10小时&#xff0c;高强度的的用眼以及不可确定的环境因素都易导致双眼出现干涉、酸痛、红血丝等情况&#xff0c…

请简述Vue更新数组时触发视图更新的方法?

在Vue中&#xff0c;当你直接修改数组&#xff08;如使用索引直接设置一个项或者使用length属性修改数组长度&#xff09;时&#xff0c;Vue不能检测到这些变化&#xff0c;因此不会触发视图的更新。为了解决这个问题&#xff0c;Vue提供了一些方法来修改数组以触发视图的更新。…

[有监督学习]6.详细图解朴素贝叶斯

朴素贝叶斯 朴素贝叶斯&#xff08;Naive Bayes&#xff09;是常用于自然语言分类问题的算法。它在垃圾邮件过滤上的应用非常有名。 概述 朴素贝叶斯是一个基于概率进行预测的算法&#xff0c;在实践中被用于分类问题。具体来说&#xff0c;就是计算数据为某个标签的概率&…

从零开始利用MATLAB进行FPGA设计(七)用ADC采集信号教程2

黑金的教程做的实在太拉闸了&#xff0c;于是自己摸索信号采集模块的使用方法。 ADC模块&#xff1a;AN9238 FPGA开发板&#xff1a;AX7020&#xff1b;Xilinx 公司的 Zynq7000 系列的芯片XC7Z020-2CLG400I&#xff0c;400引脚 FBGA 封装。 往期回顾&#xff1a; 从零开始利…

STM32学习问题总结(2)—CubeMX生成项目后串口没效果和Microlib

检查完所有的硬件和软件部分&#xff0c;最后发现&#xff0c;又是Keil的设置问题&#xff0c;啊啊啊啊 打开Keil的魔术棒&#xff0c;勾选Target的Use Microlib选项即可&#xff0c;但这并不是最佳方案 最终解决方案&#xff1a; 参考&#xff1a;http://t.csdnimg.cn/2Tjfc…

PLC坐标系统怎么编程:深入解析与实战应用

PLC坐标系统怎么编程&#xff1a;深入解析与实战应用 在工业自动化领域&#xff0c;可编程逻辑控制器&#xff08;PLC&#xff09;扮演着至关重要的角色。而PLC坐标系统作为其核心组成部分&#xff0c;对于实现精确控制和高效运行具有至关重要的作用。本文将从四个方面、五个方…

代码随想录算法训练营第四十六天| 完全背包、518. 零钱兑换 II、377. 组合总和 Ⅳ

完全背包 题目链接&#xff1a;完全背包 文档讲解&#xff1a;代码随想录/完全背包 视频讲解&#xff1a;视频讲解-完全背包 状态&#xff1a;已完成&#xff08;1遍&#xff09; 解题过程 这几天属实是有点分身乏术了&#xff0c;先直接看题解AC了&#xff0c;二刷的时候再…

服务器主板电池

一、什么是服务器纽扣电池&#xff1f; 服务器纽扣电池&#xff0c;也叫CMOS电池&#xff0c;是一种非常小型的电池&#xff0c;通常与服务器主板上的CMOS芯片相结合&#xff0c;用于储存BIOS设置、时钟和其他关键系统信息。这种电池的体积通常比一枚硬币还小&#xff0c;而且…

四、.Net8对接Ollama实现文字翻译(.Net8+SemanticKernel+Ollama)本地运行自己的大模型

.Net8SemanticKernelOllama 一、Semantic Kernel官方定义SK能做什么&#xff1f; 二、基本使用1、普通对话2、使用插件实现文本翻译功能 三、IChatCompletionService、ITextGenerationService、ITextEmbeddingGenerationService 很多情况都有这样的需求&#xff0c;使用自有系统…

巨细巨细的白痴级vulntarget-a靶场wp再不会你打死我

ad一&#xff0c;靶场搭建 下载靶场&#xff1a;GitHub - crow821/vulntarget: vulntarget靶场系列 官方拓补图 ps&#xff1a;此处 攻击机ip192.168.87.134&#xff0c;win7ip1为192.168.87.144 下载完毕后直接装入虚拟机不要进去&#xff0c;不要进去&#xff0c;不要进去…

lms如何连接测试前端:全面解析与操作指南

lms如何连接测试前端&#xff1a;全面解析与操作指南 在软件开发的世界里&#xff0c;连接学习管理系统&#xff08;LMS&#xff09;与测试前端是一个复杂但至关重要的任务。本文将从四个方面、五个方面、六个方面和七个方面&#xff0c;详细解析lms如何连接测试前端&#xff…

OpenHarmony应用在DevEco Studio配置默认密钥为123456的签名如何进行一键签名,运行起来

目录 一.背景知识 二.完成自动化操作 三.在DevEco Studio中配置自动化签名 一.背景知识 首先OpenHarmony的应用需要使用OpenH

一个完整的springboot项目,我们还需要做什么

文章目录 一 从0创建Srpingboot项目1.1 启动springboot项目1.2 导入必要的依赖 二、还缺什么2.1 统一异常捕获2.2 统一MVC返回2.3 数据分层2.4 连接数据库模块2.5 放置常量和工具类2.6 基础controller、基础entity、query查询类2.7 为了方便处理异常&#xff0c;一般还可以入参…

d3dcompiler43.dll丢失怎么修复,分享几种有效的修复教程

电脑已经成为我们生活中不可或缺的一部分。然而&#xff0c;由于各种原因&#xff0c;电脑可能会出现一些问题&#xff0c;其中之一就是d3dcompiler43.dll文件丢失。这个文件是DirectX组件之一&#xff0c;用于编译和链接DirectX应用程序。当这个文件丢失时&#xff0c;可能会导…

小白月赛91E Bingbong的字符串世界

知识点&#xff1a;系列自动机 刚开始想偏了&#xff0c;直接在字符串上操作&#xff0c;导致漏算了一些字符&#xff0c;ACCEPT前后都可以有字符串。 所以参考b站的讲解&#xff0c;要使用一个二维数组记录从i位开始第一次出现某字母的位置&#xff08;某字母指26个大写字母…

网安面试。

SQL注入 sql注入原理 对用户输入的数据没有进行严格的过滤与判断&#xff0c;导致用户构造各种恶意 payload 拼接进后台数据库查询语句中执行。 sql的类型 联合注入 堆叠注入 宽字节注入 cookie注入 XFF头注入 UA注入&#xff08;user-agent注入&#xff09; Referer注…