文章

6

粉丝

0

获赞

4

访问

806

头像
最短路径问题 题解:
P1344 浙江大学机试题
发布于2025年5月14日 10:00
阅读数 57

#include <bits/stdc++.h>
using namespace std;

struct Edge{
    int u,v,w,c;
};

struct Node{
    int u,d,p;
    friend bool operator < (Node a, Node b){
        if(a.d == b.d) return a.p > b.d;
        return a.d > b.d;
    }
};

const int maxn = 1005;
const int INF = 0x3f3f3f3f;
int n, m;
vector<Edge> edges;
vector<int> G[maxn];
int dis[maxn];
int cost[maxn];
bool vis[maxn];

void addEdge(int u, int v, int w, int c){
    edges.push_back(Edge{u,v,w,c});
    G[u].push_back(edges.size()-1);
}

void dijkstra(int s){
    priority_queue<Node> q;
    q.push(Node{s,0,0});
    memset(dis, INF, sizeof(dis));
    dis[s] = 0;
    memset(vis, false, sizeof(vis));
    while(!q.empty()){
&nbs...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发