全WA求助
查看原帖
全WA求助
112631
Lovable_Wind楼主2020/8/24 22:28

RT,给孩子整自闭了(((

#include<bits/stdc++.h>
using namespace std;
const long long inf=2147483647;
struct Edge{
	int v,w;
	Edge(){
		
	}
	Edge(int vv,int ww){
		v=vv;
		w=ww;
	}
};
vector<Edge> dis[100010];
bool vis[100010]; 
int f[100010];
int n,m,s;
int read()
{
    int ans=0,flag=1;
    char ch=getchar();
    while( (ch>'9' || ch<'0') && ch!='-' ) ch=getchar();
    if(ch=='-') flag=-1,ch=getchar();
    while(ch>='0' && ch<='9') ans=ans*10+ch-'0',ch=getchar();
    return ans*flag;
}
void dijk(){
	for (int i=1;i<=n;i++){
		int minn=inf,v=0;
		for (int j=1;j<=n;j++){
			if (!vis[j]&&f[j]<minn){
				minn=f[j];
				v=j;
			}
		}
        if (minn==inf) break;
        vis[v]=1;
		for (int j=0;j<dis[v].size();j++){
			f[dis[v][j].v]=min(f[dis[v][j].v],f[v]+dis[v][j].w);
		}
	}
}
int main()
{
	n=read();
	m=read();
	s=read();
	for (int i=1;i<=m;i++){
		int x,y,d;
		x=read(),y=read(),d=read();
		dis[x].push_back(Edge(y,d));
        dis[y].push_back(Edge(x,d));
	}
	memset(f,255,sizeof(f));
    f[s]=0;
    dijk();
    for (int i=1;i<=n;i++){
    	cout<<f[i]<<' ';
	}
}

顺便问一句为啥子回帖/发帖还要验证码?

2020/8/24 22:28
加载中...