class Solution {
public:
int maximumCost(int n, vector<vector<int>>& highways, int k) {
}
};
2247. K 条高速公路的最大旅行费用
一系列高速公路连接从 0
到 n - 1
的 n
个城市。给定一个二维整数数组 highways
,其中 highways[i] = [city1i, city2i, tolli]
表示有一条高速公路连接 city1i
和city2i
,允许一辆汽车从 city1i
前往 city2i
,反之亦然,费用为 tolli
。
给你一个整数 k
,你要正好经过 k
条公路。你可以从任何一个城市出发,但在旅途中每个城市最多只能访问一次。
返回您旅行的最大费用。如果没有符合要求的行程,则返回 -1
。
示例 1:
输入: n = 5, highways = [[0,1,4],[2,1,3],[1,4,11],[3,2,3],[3,4,2]], k = 3 输出: 17 解释: 一个可能的路径是从 0 -> 1 -> 4 -> 3。这次旅行的费用是 4 + 11 + 2 = 17。 另一种可能的路径是从 4 -> 1 -> 2 -> 3。这次旅行的费用是 11 + 3 + 3 = 17。 可以证明,17 是任何有效行程的最大可能费用。 注意,旅行 4 -> 1 -> 0 -> 1 是不允许的,因为你访问了城市 1 两次。
示例 2:
输入: n = 4, highways = [[0,1,3],[2,3,2]], k = 2 输出: -1 解释: 没有长度为 2 的有效行程,因此返回-1。
提示:
2 <= n <= 15
1 <= highways.length <= 50
highways[i].length == 3
0 <= city1i, city2i <= n - 1
city1i != city2i
0 <= tolli <= 100
1 <= k <= 50
没有重复的高速公路。
原站题解