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