文章
8
粉丝
0
获赞
13
访问
4.1k
#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...
登录后发布评论
暂无评论,来抢沙发