853. 有边数限制的最短路 bellman_ford算法模板

2023-11-02

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

请你求出从1号点到n号点的最多经过k条边的最短距离,如果无法从1号点走到n号点,输出impossible。

注意:图中可能 存在负权回路 。

输入格式

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

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

输出格式

输出一个整数,表示从1号点到n号点的最多经过k条边的最短距离。

如果不存在满足条件的路径,则输出“impossible”。

AC代码:

#include <iostream>
#include <cstring>
#include <queue>
#include <cstdio>
#include <algorithm>
//#define int long long
using namespace std;
typedef pair<int,int>PII;
const int maxn=1e6+5;
struct node {
	int u,v,w;
} e[maxn];
int n,m,k,backup[maxn],dis[maxn];
int bellman_ford() {
	memset(dis,0x3f3f3f3f,sizeof(dis));
	dis[1]=0;
	for(int i=1; i<=k; i++) { //bellman_ford算法每迭代一次即相当于更新一条边,即题目所谓的边数限制
		memcpy(backup,dis,sizeof(dis));//迭代必须从上一层状态进行迭代,否者会错误更新
		for(int j=1; j<=m; j++) {
			int a=e[j].u,b=e[j].v,c=e[j].w;
			dis[b]=min(dis[b],backup[a]+c);
		}
	}
	if(dis[n]>0x3f3f3f3f/2)return -1;
	else return dis[n]; 
}
int main() {
	cin>>n>>m>>k;
	for(int i=1; i<=m; i++) {
		cin>>e[i].u>>e[i].v>>e[i].w;
	}
	int t=bellman_ford();
	if(t==-1)cout<<"impossible"<<endl;
	else cout<<t<<endl;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

853. 有边数限制的最短路 bellman_ford算法模板 的相关文章

随机推荐

  • 百度APP视频播放中的解码优化

    背景 在全民视频的时代 百度APP中视频播放是十分重要的业务 随着 5G 的到来 视频播放已经不满足以前的标清 高清 超清乃至于 4K 已经是旧时王谢堂前燕飞入寻常百姓家 越来越清晰的视频源 越来越复杂的视频编码 对 APP 的视频解码能力
  • Android设备接入阿里云IoT物联网平台——设备接入类

    1 准备工作 1 1 注册阿里云账号 使用个人淘宝账号或手机号 开通阿里云账号 并通过 实名认证 可以用支付宝认证 1 2 免费开通IoT物联网套件 产品官网 https www aliyun com product iot 1 3 软件环
  • 微信小程序发布迭代版本后如何提示用户强制更新新版本

    在点击小程序发布的时候选择 升级选项 之前用户使用过的再打开小程序页面就会弹出升级弹窗modal
  • esp32 CMT130-V1.0 PS 240*240屏幕显示一张图片的实验

    1 使用ImageConverter565软件 将图片转为120 120大小 保存为后缀名为 c的文件 保存 2 具体pic c代码如下 3 改为如下格式的文件pic h 复制到路径 Arduino hardware espressif e
  • python 结合 Flask 的html页面嵌入for 语句

    近期有个项目 使用python和Flask框架 渲染页面后 需要使用循环显示不定长的数据 由于Flask是基于python的web框架 因此可以在html页面中直接使用 嵌套python语法 官方示例如下 https dormousehol
  • linux rpm包的编译

    有些软件包的特性是编译者选定的 如果编译未选定此特性 将无法使用 rpm包的版本落后于源码包 因此需要定制安装 也就是手动编译安装 编译需要编译环境 编译的过程如下 1 下载源码 2 执行 tar xf 3 cd到源码文件夹内 config
  • 按键状态机(实现单击,长按,双击)的模块分享

    目录 一 相关说明 二 分析 三 模块代码 三 代码讲解 四 作者的话 一 相关说明 1 需要的资源 一个定时器 一个按键 2 相关设置 利用定时器计时中断 10ms进行一次按键扫描 3 使用说明 定时器中断的优先级要设置高一点 相关的宏定
  • Matplotlib控制线条的颜色与风格

    通常对图形的第一次调整是调整它线条的颜色与风格 plt plot 函数可以通过相应的参数设置颜色与风格 要修改颜色 就可以使用 color 参数 它支持各种颜色值的字符串 颜色的不同表示方法如下所示 plt plot x np sin x
  • 面试第一关:自我介绍【含自我介绍模板】

    芝士AI吃鱼 了解更多的面试 AI知识经验 自我介绍是每一个面试必不可少的环节 也是求职应聘必须克服的一关 通过自我介绍 吸引面试官的注意力 自我介绍是你与面试官建立联系的第一步 也是面试的一个重要环节 通过一个清晰 有条理的自我介绍 你可
  • 最详细查看apk签名信息

    首先你需要java环境 或者你安装了Android Studio 随便用手机下载一个apk 这里我用的是QQ的apk 然后将这个apk发送到电脑上 接下来将这个 apk后缀名改为 zip 如下图所示 然后就是超简单的解压缩 然后你可以看到下
  • 什么是数据安全性?

    数据安全性是指在数字信息的整个生命周期中保护数字信息不受未经授权的访问 损坏或盗窃 这个概念涵盖了信息安全的各个方面 从硬件和存储设备的物理安全到管理和访问控制 以及软件应用程序的逻辑安全 数据安全涉及部署工具和技术 以增强组织对其关键数据
  • rust react tauri app 现有前端项目打包(windows)

    现有前端项目打包 环境配置 nodejs及相应包管理器 npm或yarn rust 开发环境 WebView2 安装 下载地址https developer microsoft com en us microsoft edge webvie
  • 导入exel后端校验完直接返回结果excel流前端自动下载

    var formData new FormData layero find form 0 var xhr new XMLHttpRequest xhr responseType blob xhr onload function e if t
  • mysql 5.7 主从配置优化_mysql-5.7的主从配置

    mysql的主从配置 下载最新mysql 的yum源 1 wget https dev mysql com get mysql57 community release el6 11 noarch rpm 安装最新mysql rpm ivh
  • mysql binlog 日志详解

    一 binlog概述 binlog是Mysql sever层维护的一种二进制日志 与innodb引擎中的redo undolog是完全不同的日志 其主要是用来记录对mysql数据更新或潜在发生更新的SQL语句 并以 事务 的形式保存在磁盘中
  • SpringBoot对数据进行持久化

    SpringBoot关闭服务后 对数据进行持久化操作 文章目录 SpringBoot关闭服务后 对数据进行持久化操作 1 放入需要持久化的数据 2 调用自定义的销毁方法 3 关闭程序可见控制台输入需要持久化的数据 提示 以下是本篇文章正文内
  • textarea高度随内容自动改变

    需求 textarea默认的高度不是对着内容变化 而是随着内容增多 出现了滚动条 目前的需求是实现一个能够输入的textarea 并且高度跟着内容变化 发现了一个比较好用的插件flexText 但是这个基于jquery写的 目前的技术栈是r
  • 【DRF】序列化器ModelSerializer的使用

    不使用序列化器的过程 1 把前端发送请求过来的json字符串 通过json loads转换成字典 字典转换为Python对象 存在数据库 2 返回给前端数据 是把对象查询出来 转换成字典 再通过JsonResponse转换为json字符串
  • 通信技术及云计算

    绪论 传输网络层是物联网的重要基础设施 从通信的角度来讲 传输网作为通信网的一个业务网 通信子网 在通信网络中 它承载着 物联 的作用 物联网的数据传输 由早期采用的有线方式 到后期更多无线方式的使用 在两个或多个设备之间近距离的解决了物物
  • 853. 有边数限制的最短路 bellman_ford算法模板

    给定一个n个点m条边的有向图 图中可能存在重边和自环 边权可能为负数 请你求出从1号点到n号点的最多经过k条边的最短距离 如果无法从1号点走到n号点 输出impossible 注意 图中可能 存在负权回路 输入格式 第一行包含三个整数n m