[ABC271E] Subsequence Path

洛谷链接

原题链接

题目描述

某地区有 N 个城镇,编号为 1N ,并且由 M 条公路连接,编号 1 到 M

每条公路都是有向的;而且编号为 i(1iM) 的道路将带领你从编号 Ai 的城镇到编号为 Bi 的城镇去,它的长度为 Ci

现在给你一个长度为 K 的正整数序列 E=(E1,E2,...,EK)i[1,K],Ei[1,M] 。我们说一条由一些连通的公路组成的路径为“好路”,当且仅当满足以下条件:

  • 这条路径的起点为 1 ,终点为 N
  • 按经过顺序组成这条路径的公路的编号组成的序列是 E 的子序列。

注意,若序列 S 是长度为 L 的数列 T子序列,则 S 是数列 T 删除任意 i (i[0,L]) 个元素得到的。

现在你要找到最短的“好路”。如果没有,输出 -1

输入格式

一切按照以下标准输入:

N M KA1 B1 C1AM BM CME1 ... EK

输出格式

输出最短的“好路”。如果没有,输出 -1

说明/提示

数据范围

  • 2  N  2 × 105
  • 1  M, K  2 × 105
  • 1  Ai, Bi  N, Ai  Bi  (1  i  M)
  • 1  Ci  109  (1  i  M)
  • 1  Ei  M  (1  i  K)
  • 所有输入都是整数

样例解释

对于样例1,有两条好路:

  • 选择编号为 4 的公路。在这种情况下,“好路”的长度是 5
  • 依次选择编号为 12 的公路。在这种情况下,“好路”的长度就变为了 2+2=4

因此,输出的期望值为 4

对于样例2,没有“好路”,输出 -1

posted @   robinyqc  阅读(19)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示