1786. Number of Restricted Paths From First to Last Node

https://leetcode.com/problems/number-of-restricted-paths-from-first-to-last-node

Description

There is an undirected weighted connected graph. You are given a positive integer n which denotes that the graph has n nodes labeled from 1 to n, and an array edges where each edges[i] = [ui, vi, weighti] denotes that there is an edge between nodes ui and vi with weight equal to weighti.

A path from node start to node end is a sequence of nodes [z0, z1,z2, ..., zk] such that z0 = start and zk = end and there is an edge between zi and zi+1 where 0 <= i <= k-1.

The distance of a path is the sum of the weights on the edges of the path. Let distanceToLastNode(x) denote the shortest distance of a path between node n and node x. A restricted path is a path that also satisfies that distanceToLastNode(zi) > distanceToLastNode(zi+1) where 0 <= i <= k-1.

Return the number of restricted paths from node 1 to node n. Since that number may be too large, return it modulo 109 + 7.

Example 1:

Example 2:

Constraints:

  • 1 <= n <= 2 * 104

  • n - 1 <= edges.length <= 4 * 104

  • edges[i].length == 3

  • 1 <= ui, vi <= n

  • ui != vi

  • 1 <= weighti <= 105

  • There is at most one edge between any two nodes.

  • There is at least one path between any two nodes.

ac

Last updated

Was this helpful?