【Dij】P1807 最长路

题意

GGG 为有 nnn 个顶点的带权有向无环图,GGG 中各顶点的编号为 111nnn,请设计算法,计算图 GGG1,n1, n1,n 间的最长路径。

输入格式

输入的第一行有两个整数,分别代表图的点数 nnn 和边数 mmm

222 到第 (m+1)(m + 1)(m+1) 行,每行 333 个整数 u,v,wu, v, wu,v,wu<vu<vu<v),代表存在一条从 uuuvvv 边权为 www 的边。

输出格式

输出一行一个整数,代表 111nnn 的最长路。

111 无法到达 nnn,请输出 −1-11

数据范围

  • 对于 20%20\%20%的数据,n≤100n \leq 100n100m≤103m \leq 10^3m103
  • 对于 40%40\%40% 的数据,n≤103n \leq 10^3n103m≤104m \leq 10^{4}m104
  • 对于 100%100\%100% 的数据,1≤n≤15001 \leq n \leq 15001n15000≤m≤5×1040 \leq m \leq 5 \times 10^40m5×1041≤u,v≤n1 \leq u, v \leq n1u,vn−105≤w≤105-10^5 \leq w \leq 10^5105w105

思路

单源最短路问题板题,本次做这题只是为了重新找回手感,详见我之前写的blog。

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
//存图 
int n,m;
int head[1505],nex[50005],cnt = 0;
struct edge{int to,w;
}node[50005];
void add(int x,int y,int w) {nex[++cnt] = head[x];head[x] = cnt;node[cnt].to = y;node[cnt].w = w;
}
struct point{int id,w;friend bool operator <(point x,point y) {return x.w < y.w;}
}; 
priority_queue<point>P;
int ans[1505];
signed main() {scanf("%lld %lld",&n,&m);for(int i = 2;i <= n;i++) ans[i] = -100000000000;for(int i = 1;i <= m;i++) {int x,y,z;scanf("%lld %lld %lld",&x,&y,&z);add(x,y,z);} point t;t.id = 1,t.w = 0;P.push(t);while(!P.empty()) {t = P.top();P.pop();for(int i = head[t.id];i;i = nex[i]) {if(ans[node[i].to] < ans[t.id] + node[i].w) {ans[node[i].to] = ans[t.id] + node[i].w;point new_point;new_point.id = node[i].to;new_point.w = ans[node[i].to];P.push(new_point);}}}if(ans[n] == -100000000000) printf("-1\n");else printf("%lld\n",ans[n]);return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构初阶】--双向链表(二)

&#x1f525;个人主页&#xff1a;草莓熊Lotso &#x1f3ac;作者简介&#xff1a;C研发方向学习者 &#x1f4d6;个人专栏&#xff1a; 《C语言》 《数据结构与算法》《C语言刷题集》《Leetcode刷题指南》 ⭐️人生格言&#xff1a;生活是默默的坚持&#xff0c;毅力是永久的…

一个月掌握数据结构与算法:高效学习计划

一个月掌握数据结构与算法&#xff1a;高效学习计划掌握数据结构与算法是成为优秀程序员的关键一步。虽然一个月时间紧凑&#xff0c;但通过高效学习完全可以掌握核心内容。以下是一个系统化的学习计划&#xff1a;第一周&#xff1a;基础数据结构目标&#xff1a;掌握数组、链…

Linux物理地址空间入门:从硬件到内核内存的基石

目录 一、物理地址空间是什么&#xff1f; 二、物理地址空间的构成&#xff1a;不仅仅是内存 三、Linux内核如何管理物理地址空间 &#xff08;1&#xff09;物理内存的碎片化问题 &#xff08;2&#xff09;物理地址的分区管理 &#xff08;3&#xff09;物理地址与内核…

解决win10下Vmware虚拟机在笔记本睡眠唤醒后ssh连接不上的问题

背景 在使用Vmware虚拟机时经常会遇到这样一个问题&#xff1a;当笔记本电脑从睡眠状态唤醒后【关掉笔记本盖子一段时间&#xff0c;再打开电脑】&#xff0c;ssh连接不上虚拟机&#xff0c;需要将Vmware的网卡在控制面板中禁用再重启才可以。 解决方法 使用Win10的任务计划程序…

20250721

P5357 【模板】AC 自动机 - 洛谷 主要是构建fail树 /* 我们可以知道的是&#xff0c;当访问一个点x时&#xff0c;接下来需要跳转其fail[x]&#xff0c;以此类推&#xff0c;如果在某个fail[x]上出现了一个字符串&#xff0c;那么相应的统计次数应该加1&#xff0c;然后当访…

Maven

目录 1 什么是 Maven 2 Maven 核心功能 项目构建 依赖管理 Maven Help 插件 3 Maven 仓库 本地仓库 中央仓库 私有服务器&#xff08;简称私服&#xff09; 4 Maven 设置国内源 配置当前项目 setting 设置新项目的 setting 1 什么是 Maven Maven 是一个项目管理工…

RabbitMQ核心组件浅析:从Producer到Consumer

作为分布式系统中异步通信的扛把子&#xff0c;RabbitMQ 凭借其高可靠、灵活路由的特性&#xff0c;几乎是每个后端开发者的"必备技能"。但很多新手刚接触时&#xff0c;常被各种组件名称绕晕——Broker、Exchange、Queue、vhost…这些"术语炸弹"到底啥关系…

c#转python第四天:生态系统与常用库

作为系列文章的第 4 篇,本文将聚焦 Python 生态中最具代表性的技术栈,通过与 C# 对应技术的横向对比,帮助开发者快速掌握 Python 在数据处理、Web 开发和异步编程领域的核心优势。无论是有 C# 基础想转 Python 的开发者,还是需要在两种语言间做技术选型的团队,都能从本文的…

nginx定期清理日志

原创作者&#xff1a;运维工程师 谢晋 nginx定期清理日志 创建脚本clean_nginx_logs.sh # vi clean_nginx_logs.sh#!/bin/bash# 定义日志文件路径 LOG_DIR"/var/log/nginx" ACCESS_LOG"access.log" ERROR_LOG"error.log"# 定义保留日志的天数…

【Go语言-Day 22】解耦与多态的基石:深入理解 Go 接口 (Interface) 的核心概念

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

YOLO多模态融合 | 从 DEA 到 DEFA:动态卷积+交叉注意力的创新融合

本教程基线代码为开源项目 YOLOFuse 请注意&#xff1a;并非在所有数据集上都能带来性能提升。DEFA 模块是我基于自身思路改进的——在您的数据集上是否有效&#xff0c;还需您自行实验验证&#xff0c;无法保证一定会有所增益。 一、背景与动机 在多模态目标检测场景中&#…

基于SEP3203微处理器的嵌入式最小硬件系统设计

目录 1 引言 2 嵌入式最小硬件系统 3 SEP3202简述 4 最小系统硬件的选择和单元电路的设计 4.1 电源电路 4.2 晶振电路 4.3 复位及唤醒电路 4.5 存储器 4.5.1 FLASH存储 4.5.2 SDRAM 4.6 串行接口电路设计 4.7 JTAG模块 4.8 扩展功能&#xff08;LED&#xff09; …