文章

35

粉丝

599

获赞

6

访问

294.7k

头像
75%
P1655 北京邮电大学2019年机试题
发布于2020年5月7日 21:53
阅读数 7.0k

签到题玩家表示 不知道剩下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){
...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发