文章
25
粉丝
0
获赞
208
访问
4.9k
#include<bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const int N = 605;
int dist1[N];
int dist2[N];
bool done[N];
int camp[N];
int n,m;
struct Edge{
int from;
int to;
int weight;
}allEdges[10005];
vector<Edge> graph1[N];
vector<Edge> graph2[N];
vector<Edge> crossEdge;
struct s_node{
int id;
int n_dis;
bool operator <(const s_node &a) const{
return n_dis > a.n_dis;
}
};
void dijkstra(int st,int dist[],vector<Edge> e[]){
for(int i = 1; i <= n; i++){
dist[i] = INF;
done[i] = false;
}
dist[st] = 0;
priority_queue<s_node> q;
q.push({st,dist[st]});
while(!q.empty()){
s_node now = q.top();
q.pop();
if(done[now.id]) continue;
done[now.id] = true;
for(int i = 0; i < e[now.id].size(); i++){
Edge next = e[now.id][i];
if(don...
登录后发布评论
暂无评论,来抢沙发