48、spfa求最短路
spfa求最短路
题目描述
给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。
请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出impossible。
数据保证不存在负权回路。
输入格式
第一行包含整数n和m。
接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。
输出格式
输出一个整数,表示1号点到n号点的最短距离。
如果路径不存在,则输出”impossible”。
数据范围
1 ≤ n , m ≤ 1 0 5 , 1≤n,m≤10^5, 1≤n,m≤105,
图中涉及边长绝对值均不超过10000。
输入样例:3 3
1 2 5
2 3 -3
1 3 4输出样例:2
Solution
import java.util.*;
import java.io.*;class Main{static int INF = 0x3f3f3f3f;// 稀疏图用邻接表来存储static int N = 100010;static int[] e = new int[N];static int[] ne = new int[N];static int[] h = new int[N];static int[] w = new int[N];static int idx = 1;// 记录与起点的距离static int[] d = new int[N];// 记录队列里是否已经有了static boolean[] flag = new boolean[N];public static void add(int x, int y, int z){e[idx] = y;w[idx] = z;ne[idx] = h[x];h[x] = idx++;}public static int spfa(int n){// 初始化Arrays.fill(d, INF);d[1] = 0;Queue<Integer> q = new ArrayDeque<>();q.add(1);flag[1] = true;while(!q.isEmpty()){int t = q.remove();flag[t] = false;// 遍历所有以 t 为出发点的边for(int i = h[t]; i != 0; i = ne[i]){int j = e[i];if(d[j] > d[t] + w[i]){d[j] = d[t] + w[i];// 如果队列中没有 j,就将 j 入队if(!flag[j]){q.add(j);flag[j] = true;}}}}return d[n];}public static void main(String[] args) throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String[] s = br.readLine().split(" ");int n = Integer.parseInt(s[0]);int m = Integer.parseInt(s[1]);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]);add(x, y, z);}if(spfa(n) < INF/2) System.out.println(d[n]);else System.out.println("impossible");}}
相关文章:
48、spfa求最短路
spfa求最短路 题目描述 给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出impossible。 数据保证不存在负权回路。 输入格式 第一行包…...

安装PyTorch详细步骤
💥注意事项: CPU版和GPU版选一个进行安装即可 如果有Nvidia显卡,则安装cuda版本的PyTorch,如没有nvidia显卡,则安装cpu版。 目前常见的深度学习框架有很多,最出名的是:PyTorch(faceb…...

linux线程,线程控制与线程相关概念
线程概念 线程这个词或多或少大家都听过,今天我们正式的来谈一下线程; 在我一开始的概念中线程就是进程的一部分,一个进程中有很多个线程,这个想法基本是正确的,但细节部分呢我们需要细细讲解一下; 什么…...

第八大奇迹
目录 题目描述 输入描述 输出描述 输入输出样例 示例 输入 输出 运行限制 原题链接 代码思路 题目描述 在一条 R 河流域,繁衍着一个古老的名族 Z。他们世代沿河而居,也在河边发展出了璀璨的文明。 Z 族在 R 河沿岸修建了很多建筑,…...

MySQL:CRUD初阶(有图有实操)
文章目录 📑1. 数据库的操作🌤️1.1 显示当前的数据库🌤️1.2 创建数据库🌤️1.3 选中数据库🌤️1.4 删除数据库 📑2. 表的操作🌤️2.1 查看表结构🌤️2.2 创建表🌤️2.3…...
『大模型笔记』使用 vLLM 和 PagedAttention 快速提供 LLM 服务!
使用 vLLM 和 PagedAttention 快速提供 LLM 服务! 文章目录 一. 使用 vLLM 和 PagedAttention 快速提供 LLM 服务!1.1. PagedAttention二. 参考文献小红书中文字幕视频:https://www.xiaohongshu.com/explore/66502b60000000000500433e官网文档(推荐,里面有动图解释):vLLM:…...
简述vue-loader是什么?使用它的用途有哪些
vue-loader是一个webpack的加载器(loader),主要用于将Vue组件的单文件(.vue文件)转换为JavaScript模块。使用vue-loader的主要用途包括: 解析.vue文件:vue-loader能够解析.vue文件中的模板、样式和脚本,并将它们分离出来进行处理…...

如何远程访问Redis?
远程访问Redis是一种常见的需求,特别是在分布式系统或跨地域网络中。通过远程访问,我们可以轻松地对远程的Redis数据库进行操作和管理。 天联保障数据安全 对于远程访问Redis的安全性问题,我们可以借助天联来保障数据的安全。天联是一种基于…...

#12松桑前端后花园周刊-SolidStart、Vercel融资、Angular18、Nextjs15RC、p5.js、ChromeDevTools引入AI
⚡️行业动态 SolidStart 1.0 元框架发布 Solidjs 核心团队发布其元框架 SolidStart 1.0 正式版,其特点如下:基于文件系统的路由;支持SSR、流式SSR、CSR、SSG渲染模式;通过代码分割、树摇和无用代码删除构建优化;基于…...

vue3 vite title 页面标题设置
效果图: 1. 安装 vite-plugin-html 插件 npm install vite-plugin-html -D2. 修改 vite.config.js import {defineConfig, loadEnv} from vite import { createHtmlPlugin } from "vite-plugin-html" import {resolve} from path import vue from vitej…...
spring boot添加License(软件许可)
文章目录 前言1. 生成钥匙库2. 生成证书3. 生成公匙库4.业务代码1. 引入依赖2. 关键代码3. 配置文件 5、改成线上地址,这样不用每次打包,发送license.lic文件给客户,重启项目就行5.1、工具类5.2 修改部分: 总结 前言 工作需要给软…...

LangChain打造一个AI客服
最近在学习LangChain,langchain的第一个入门应用就是和ChatGPT结合形成的一个AI客服,本期文章就带大家一起认识下 LangChain LangChain是现在用得最多的AI框架,langchain在帮助如基于文档数据的回答、聊天机器人和代理这类的应用程序 langch…...
【前端三剑客之JS】详解JS
1. JS的引入方式 (1). 内部脚本方式引入 在页面上,通过一对script标签引入js代码.script代码放置位置有一定随意性,一般放在head标签中. (2).外部脚本方式引入. 内部脚本只能在当前页面中使用,代码复用度不高.可以将脚本放在单独的js文件…...

重庆耶非凡科技有限公司有选品师项目培训吗?
在当今科技飞速发展的时代,各种科技公司如雨后春笋般涌现,它们在不同领域发挥着重要作用。其中,重庆耶非凡科技有限公司以其独特的业务模式和专业服务,在业界赢得了良好的口碑。那么,重庆耶非凡科技有限公司究竟是做什…...
格式转化——Labelme标注好的json文件批量转为png(标签)文件(物体为红色,背景为黑色)和jpg原图
作用如题目,批量将标注好的json文件转成png标签,jpg原图,其中标签时红黑图。 代码如下: import argparse import base64 import json import os import os.path as osp import imgviz import PIL.Image import yaml from labelm…...
力扣刷题--2535. 数组元素和与数字和的绝对差【简单】
题目描述 给你一个正整数数组 nums 。 元素和 是 nums 中的所有元素相加求和。 数字和 是 nums 中每一个元素的每一数位(重复数位需多次求和)相加求和。 返回 元素和 与 数字和 的绝对差。 注意:两个整数 x 和 y 的绝对差定义为 |x - y| 。…...

2024年【危险化学品经营单位安全管理人员】考试报名及危险化学品经营单位安全管理人员找解析
题库来源:安全生产模拟考试一点通公众号小程序 危险化学品经营单位安全管理人员考试报名考前必练!安全生产模拟考试一点通每个月更新危险化学品经营单位安全管理人员找解析题目及答案!多做几遍,其实通过危险化学品经营单位安全管…...

IntelliJ IDEA集成Baidu Comate,商城系统支付交易功能开发实战
文章目录 Baidu Comate介绍安装配置体验安装插件配置体验注释生成代码技术问答 实战设计表生成代码导入数据 总结 Baidu Comate介绍 在科技互联网飞速发展的今天,百度凭借其深厚的技术积累和创新能力,推出了一款名为Baidu Comate智能代码助手的产品。该…...

20212313 2023-2024-2 《移动平台开发与实践》第5次作业
20212313 2023-2024-2 《移动平台开发与实践》第5次作业 1.实验内容 设计并开发一个地图应用系统。 该实验需提前申请百度API Key,调用接口实现百度地图的定位功能、地图添加覆盖物和显示文本信息。 2.实验过程 2.1 获取SHA1 (1)打开控制台…...
Python图形界面(GUI)Tkinter笔记(十二):用【Entry()】实现单行文本输入(3)
Tkinter库中的单行文本输入框(Entry)除了与get()方法组合产生多姿多彩的反应,还可以与insert()方法组合而产生新的功能。例如用于用户不作任何输入就用默认值当作用户的输入这种场境,或在输入文本中加入指定的字符等。 其余笔记:【Python图形界面(GUI)Tkinter笔记(总目录…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...

负载均衡器》》LVS、Nginx、HAproxy 区别
虚拟主机 先4,后7...