. - 力扣(LeetCode)
class Solution {
private:// 极大值static constexpr int INFTY = INT_MAX / 2;public:int minCost(int maxTime, vector<vector<int>>& edges, vector<int>& passingFees) {int n = passingFees.size();vector<vector<int>> f(maxTime + 1, vector<int>(n, INFTY));f[0][0] = passingFees[0];for (int t = 1; t <= maxTime; ++t) {for (const auto& edge: edges) {int i = edge[0], j = edge[1], cost = edge[2];if (cost <= t) {f[t][i] = min(f[t][i], f[t - cost][j] + passingFees[i]);f[t][j] = min(f[t][j], f[t - cost][i] + passingFees[j]);}}}int ans = INFTY;for (int t = 1; t <= maxTime; ++t) {ans = min(ans, f[t][n - 1]);}return ans == INFTY ? -1 : ans;}
};