现有一个加权无向连通图。给你一个正整数 n
,表示图中有 n
个节点,并按从 1
到 n
给节点编号;另给你一个数组 edges
,其中每个 edges[i]=[ui,vi,weighti]edges[i] = [u_{i}, v_{i}, weight_{i}]edges[i]=[ui,vi,weighti] 表示存在一条位于节点 uiu_{i}ui 和 viv_{i}vi 之间的边,这条边的权重为 weightiweight_{i}weighti 。
从节点 start 出发到节点 end
的路径是一个形如 [z0,z1,z2,...,zk][z_{0}, z_{1}, z_{2}, ..., z_{k}][z0,z1,z2,...,zk] 的节点序列,满足 z0=startz_{0} = startz0=start 、zk=endz_{k} = endzk=end 且在所有符合 0<=i<=k−10 <= i <= k-10<=i<=k−1 的节点 ziz_{i}zi 和 zi+1z_{i}+1zi+1 之间存在一条边。
路径的距离定义为这条路径上所有边的权重总和。用 distanceToLastNode(x)
表示节点 n
和 x
之间路径的最短距离。受限路径 为满足 distanceToLastNode(zi)>distanceToLastNode(zi+1)distanceToLastNode(z_{i}) > distanceToLastNode(z_{i}+1)distanceToLastNode(zi)>distanceToLastNode(zi+1) 的一条路径,其中 0<=i<=k−10 <= i <= k-10<=i<=k−1 。
返回从节点 1
出发到节点 n
的 受限路径数 。由于数字可能很大,请返回对 109+710^9 + 7109+7 取余 的结果。
示例 1:
输入:n = 5, edges = [[1,2,3],[1,3,3],[2,3,1],[1,4,2],[5,2,2],[3,5,1],[5,4,10]]
输出: