文章

111

粉丝

1

获赞

731

访问

21.4k

头像
最短路径问题 题解:c++
P1344 浙江大学机试题
发布于2026年3月17日 22:03
阅读数 71

#include <iostream>
#include <set>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#include <algorithm>
#include <queue>
#include <stack>
#include <vector>
#include <string>
using namespace std;

//边结构体 
struct Edge {
    int u, v, w, p;
};
vector<Edge> vec;    
vector<int> G[1005]; 
int dist[1005];   // 存放起点到 i 点的最短距离
int vis[1005];    // 标记是否访问过(是否已确定最短距离)
int p[1005];      // 存放路径,p[i] 表示到 i 的最短路径中 i 的前一个节点
int money[1005];
// 添加一条边
void addEdge(int u, int v, int w,int p) {
    vec.push_back({u,v,w,p});  // 存入 edges
    G[u].push_back(vec.size() - 1); // 在 G[u] 中记录这条边的下标
}
void spfa(int s){
    queue<int> q;  
    for(int &i : dist) i = 9999999;
    for(int &i : money) i = ...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发