文章

225

粉丝

165

获赞

361

访问

107.3k

头像
K站中转内最便宜的航班 题解:Bellman-Ford 算法
P807
发布于2026年3月6日 01:45
阅读数 72

#include <iostream>
#include <vector>
using namespace std;

int main() {
    const int INF = 1e9;
    int n, src, dst, k;
    cin >> n >> src >> dst >> k;
    
    int m;
    cin >> m;
    vector<vector<int> > flights;
    for (int i = 0; i < m; ++i) {
        int from, to, price;
        cin >> from >> to >> price;
        vector<int> flight;
        flight.push_back(from);
        flight.push_back(to);
        flight.push_back(price);
        flights.push_back(flight);
    }
    
    // prev_dist[i] 表示上一轮(s-1条边)到i的最短距离
    vector<int> prev_dist(n, INF);
    prev_dist[src] = 0;
    
    // 迭代k+1次,对应最多k+1条边(k次中转)
    for (int i = 0; i <= k; ++i) {
        vector<int> curr_dist = prev_dist; // 初始继承上一轮结果
        for (int j = 0; j < flights.size(); ++j) {
            int from = flights[j][0];
            int to = flights[j][1];
            int price = fli...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发