文章
35
粉丝
599
获赞
6
访问
310.2k
签到题玩家表示 不知道剩下25在在哪里改
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <vector>
#include <queue>
using namespace std;
const int maxn=2650;
struct edge{
int u,v,w,re;
edge(int u,int v,int w,int re):u(u),v(v),w(w),re(re){}
};
int n,m,k;
vector<edge> edges;
vector<int> g[maxn];
int dis[maxn],cost[maxn];
int vis[maxn];
int p[maxn];
void spfa(int s){
queue<int> q;
for(int i=0;i<=n;i++){
dis[i]=1000000;
//cost[i]=1000000;
}
dis[s]=0;
//cost[s]=0;
memset(vis, 0, sizeof(vis));
q.push(s);
while(!q.empty()){
int u=q.front();q.pop();
vis[u]=0;
for(int i=0;i<g[u].size();i++){
edge& e=edges[g[u][i]];
if(dis[e.v]>dis[u]+e.w){
dis[e.v]=dis[u]+e.w;
//cost[e.v]=cost[u]+e.c;//这句别忘了
p[e.v]=u;
if(!vis[e.v]){
vis[e.v]=1;
q.push(e.v);
}
}
// else if(dis[e.v]==dis[u]+e.w){
...
登录后发布评论
暂无评论,来抢沙发