AcWing 853. 有边数限制的最短路

2023-10-26

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

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

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

输入格式

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

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

点的编号为 1∼n。

输出格式

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

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

数据范围

1≤n,k≤500
1≤m≤10000
1≤x,y≤n,
任意边长的绝对值不超过 10000。

输入样例:

3 3 1
1 2 1
2 3 1
1 3 3

输出样例:

3

 

#include<bits/stdc++.h>
using namespace std;
const int INF=0x3f3f3f3f;
const int N=505;
struct edge{
	int a,b,w;
}e[10010];
int n,m,k,dis[N],backup[N];
void bellman(){
	memset(dis,0x3f,sizeof dis);
	dis[1]=0;
	for(int i=0;i<k;i++){
		memcpy(backup,dis,sizeof dis);	//由于本题是求最多经过k个点,所以某一次迭代可能影响后面的点 
		for(int j=0;j<m;j++){
			int x=e[j].a,y=e[j].b;
			dis[y]=min(dis[y],backup[x]+e[j].w);
		}
	}
	if(dis[n]>INF/2) cout<<"impossible";
	else cout<<dis[n];
}
int main(){
	scanf("%d%d%d",&n,&m,&k);
	for(int i=0;i<m;i++){
		int a,b,c;
		scanf("%d%d%d",&a,&b,&c);
		e[i]={a,b,c};
	}
	bellman();
	return 0;
}

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

AcWing 853. 有边数限制的最短路 的相关文章

  • 我想优化这个短循环

    我想优化这个简单的循环 unsigned int i while j 0 j is an unsigned int with a start value of about N 36 000 000 float sub 0 i 1 unsig
  • C# 中的密码恢复工具不起作用

    嗨 我对此还很陌生 我创建了一个门户 用户可以登录并在其中查看我制作的其他程序 问题是密码恢复似乎不起作用 我没有收到任何错误消息 我只是收到消息 我们无法访问您的信息 请重试 我已经正确设置了 ASP NET 配置 并使用不同的用户和权限
  • 了解子表单何时关闭

    我有一个带有按钮的 Form1 当您单击按钮时 将执行以下代码块 Form2 frm new Form2 frm Name Form musteriNumarasi ToString frm Text Kullan c musteriNum
  • 当 TestCase 包含数组时,NUnit 无法识别该 TestCase

    这是我在 NUnit 中遇到的非常简单但烦人的行为 我有一些这样的测试 Test TestCase 1 2 hello TestCase 3 5 goodbye public void MyClass MyMethod int a int
  • 在 Eclipse 4.4.2 中使用 C 代码中的构建变量

    我有一个之前使用 Eclipse 3 5 2 创建的项目 在其中 我能够在项目属性中设置构建变量 在这种情况下 假设我设置了SW VERSION是 4403 现在这应该是一个十六进制数字 所以在构建设置中 我添加了一个符号 VERSION
  • 如何使用 PowerShell 使用 C# DLL 中存在的类的 New-Object

    例如 我有一个 C 类 public class MyComputer PSObject public string UserName get return userName set userName value private strin
  • 如何将文本框中删除的字符替换为0

    在winforms中 如何用零替换删除的字符 例如 文本框中为 12 45 如果我们删除小数点后 它应该变成12 00 同样的方法删除前面的000 45 默认值应为 000 00 Use a 蒙版文本框 http msdn microsof
  • ReportViewer“缺少 URL 参数:名称”

    在一个网络应用程序中 我正在处理 ReportViewer 时不断出现错误 缺少 URL 参数 名称 我找到了原因 但没有找到解决方案 导致报告查看器出现异常的 url Reserved ReportViewerWebControl axd
  • 无法将方法组分配给 asp.net、linq、c# 中的隐式类型局部变量

    public void selectqueryasso CustomerOrderResult cso new CustomerOrderResult var a from as1 in ds orders from as2 in ds o
  • 树结构的序列化/反序列化

    我试图找出保存 序列化 并稍后打开 反序列化 树结构的最佳方法 我的结构由具有不同属性的各种对象类型组成 但每个对象类型都继承自基本抽象 Node 类 每个节点都有唯一的 ID GUID 并且有一个 AddSuperNode Node nd
  • 使用来自不同线程的实时数据更新 QTableView 的最佳策略

    我的应用程序现在启动几个线程 如 5 10 个 来从不同源收集数据 它们与主 GUI 线程分离 因此我在 GUI 中感觉不到任何缓慢 并且我可以在后台线程工作时继续工作 一切都很棒 但现在我希望能够在我的主 GUI 中的 QTableVie
  • 将 KeyUp 作为参数传递 WPF 命令绑定文本框

    我有一个文本框 KeyUp 事件触发器连接到 WPF 中的命令 我需要将按下的实际键作为命令参数传递 该命令执行得很好 但处理它的代码需要知道按下的实际键 记住这可能是一个回车键或不仅仅是一个字母的任何键 所以我无法从 TextBox te
  • 为什么 `boost::any` 比 `void*` 更好?

    有什么先天优势boost any and boost any cast提供超过使用void and dynamic cast 优点是boost any比类型安全得多void E g int i 5 void p i static cast
  • 在源代码和预编译二进制文件之间切换

    我们的应用程序中有大量的库 库是用 C 或 C 编写的 平台 net Framework Windows 64 位 将所有内容编译为源代码需要花费大量时间 我们正在考虑切换到预构建的二进制文件 但我们仍然希望保留返回源代码的可能性 作为版本
  • 在 asp.net MVC 控制器中调用异步外部 Web 服务

    在 Asp net MVC 控制器 GET 方法 中 我调用外部 Web 服务 用于 IP 地理定位 返回 IP 位置的 json 数据 如何使调用异步 以便堆栈可以在等待服务响应时继续 当 GEO IP 请求完成后 我希望能够更新数据库
  • 从 Asp.Net Core 控制器返回 IAsyncEnumerable 和 NotFound

    返回一个控制器操作的正确签名是什么IAsyncEnumerable
  • 如何在 MVC 5 中设置自定义 ClaimsPrincipal?

    我创建了一个自定义主体类 public class FacebookPrincipal ClaimsPrincipal public JObject Data get set 我想用它 当用户登录时 我尝试设置 var fbP new Fa
  • WCF - IsOneway 的行为不像 Oneway 操作

    我已在服务的某些方法上定义了 OneWay 属性 但它们的行为并不像 Oneway 调用 我的客户等待呼叫完成并从服务返回 我假设单向操作是非阻塞操作 并且客户端不关心被调用函数会发生什么 它只是调用并忘记它 这是对的吗 问题 调用 Ope
  • Bazel:为 cc_binary/cc_test 设置运行时环境变量和配置文件位置

    我正在尝试在 Linux 上的 C 应用程序中使用 odbc 以下构建文件用于将库作为外部依赖项包含在内 licenses notice cc library name lib srcs lib libodbc so lib64 libod
  • scanf() 不等待用户输入[重复]

    这个问题在这里已经有答案了 我正在使用 c 中的双向链表来制作树 我在该函数中使用递归调用 但不知何故它不起作用 我的代码是 struct node int data struct node right struct node left s

随机推荐

  • CPU的两种架构概要

    2种CPU架构 冯诺伊曼架构和哈佛架构 1 哈佛结构 是一种将程序指令储存 和 数据储存分开的存储器结构 哈佛结构的微处理器通常具有较高的执行效率 其程序指令和数据指令分开组织和储存的 执行时可以预先读取下一条指令 常见的有 PIC系列芯片
  • 计算机毕业设计ssm基于MySQL的房屋中介系统7m60a9 (附源码)轻松不求人

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 ssm mybatis Ma
  • VBS脚本统计红楼梦中贾宝玉出现的次数

    VBS脚本统计红楼梦中贾宝玉出现的次数 文件 链接 https pan baidu com s 1T XIbIHzMZiIX8IiSMcZdg 提取码 sti6 脚本代码 Dim fso ts s 创建Scripting FileSyste
  • 一份关于windows server服务器的安全漏洞处理建议(来自绿盟安全评估)

    文章目录 前言 一 服务器主机存在漏洞应该怎么修复 二 报告中的高危漏洞 部分展示 1 Microsoft Windows CredSSP 远程执行代码漏洞 CVE 2018 0886 2 SSL TLS协议信息泄露漏洞 CVE 2016
  • matlab读取csv有字符有数字,MATLAB读取csv文件里面既有文本又有数字的文件怎么读取。(可以不止csv文件,txt等文件都可以)...

    MATLAB读取csv文件里面既有文本又有数字的文件怎么读取 一 第一种方法用代码读取 用代码读取 1 如果你要读的文件里面都是数字的话 用csvread函数 它有三种方式读取 但是它的缺点就是只能读取全是数值的文件 简单来说 只能读数字
  • 智能小车红绿灯识别功能的实现(python,ubuntu)

    From sztu 自动化专业的小菜鸡 1 基本介绍 交通标志识别代码存在于 config teleop src smartcar scripts文件目录下的camera cmd py中 核心程序为light detection函数 lig
  • JavaScript实现简单区块链

    用JavaScript来实现一个简单的区块链 通过实现过程 你将理解区块链是什么 区块链就是一个分布式数据库 存储结构是一个不断增长的链表 链表中包含着许多有序的记录 然而 在通常情况下 当我们谈到区块链的时候也会谈起使用区块链来解决的问题
  • Implement Trie (Prefix Tree)前缀树系列

    208 Implement Trie Prefix Tree class Trie def init self Initialize your data structure here self tree def insert self wo
  • [HDLBits] Dualedge

    You re familiar with flip flops that are triggered on the positive edge of the clock or negative edge of the clock A dua
  • 时间函数——setDate()

    实例 设置一个月的某一天 var d new Date d setDate 15 d 输出结果 Sun Sep 15 2019 11 06 10 GMT 0800 中国标准时间 定义和用法 setDate 方法用于设置一个月的某一天 浏览器
  • [1055]VM上配置Centos7网络&设置静态IP&修改hostname

    文章目录 配置ceotos7网络 设置静态IP 修改hostname 配置ceotos7网络 首先在安装好centos7的时候会在本机电脑的网络管理里面出现以下网络 开机登录时候直接ping www baidu com 会发现ping不同
  • 一个很骚的sql报错:分页查询,每次返回数据可能不同

    追加 不是主要问题 应该是排序字段缺少唯一值 后面加了rowid 生效了 主表 bdg budget project 辅表 bdg budget 关系 一对一关系 问题 相同sql 分页查询 多次点击 返回的数据可能不同 原因 排序字段是辅
  • "防止同时出现多个应用程序实例"之改进

    防止同时出现多个应用程序实例 之改进字号 大 中 小 在 Delphi 5 开发人员指南 中第13章中有一篇 防止同时出现多个应用程序实例 代码中给出了一个MultInst pas单元 工程引用此单元就能防止同时出现多个实例 但实际应用中发
  • 铨顺宏RFID:错综复杂的地下管道用RFID标签能完成管理吗?

    RFID技术性使地底管网系统软件可以开展国际化的信息管理方法 提升管路的布署 日常保护和运作管理能力 现阶段地底管网资源优化配置方式已基本上不可以融入日益增加的管网业务流程要求 在较大水平上阻碍了城市的发展趋势 利用RFID方式方法对城市地
  • 探索地块建立

    探索地块建立 public static void main String args int num 0 Scanner sc new Scanner System in String s sc nextLine split int n I
  • Java获取当前时间前几个月、季度

    项目统计需要展示折线图 要求横轴 当前日期的前4个季度 前12个月 至于包含 不包含本月 自己处理一下日期就好 获取数组 import java time LocalDate import java util ArrayList impor
  • JavaScript数组方法整理

    JavaScript数组方法整理 1 join join 就是把数组转换成字符串 然后给他规定个连接字符 默认的是逗号 var arr 1 2 3 console log arr join 1 2 3 console log arr joi
  • 浅谈数据分析和数据挖掘

    1 数据分析 数据分析是指用适当的统计分析方法对收集来的大量数据进行分析 提取有用信息和形成结论而对数据加以详细研究和概括总结的过程 数据分析有极其广泛的应用范围 典型的数据分析过程可看做 四部曲 第一 数据获取 获取数据的前提是对商业问题
  • “老外写中国”的四大流派

    中国大趋势 当中国统治世界 关系 老北京最后的日子 工厂女孩 中国行 在英文的书架中 寻找主题为 中国 的图书 会冒出很多这样的封面设计 大红色的背景 鲜红色五角星占据主要位置 同样鲜红的书名中 CHINA 这个词的字体总是放得最大 这里介
  • AcWing 853. 有边数限制的最短路

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