102 条题解

  • -2
    @ 2023-1-31 12:15:45
    #include<bits/stdc++.h>
    using namespace std;
    long long read(){
    	long long ans=0,f=1;
    	char ch=getchar();
    	while(!isdigit(ch)){
    		f*=(ch=='-')?-1:1;
    		ch=getchar();
    	}
    	while(isdigit(ch)){
    		ans=(ans<<3)+(ans<<1)+(ch^48);
    		ch=getchar();
    	}
    	return ans*f;
    }
    const int MAXN=505;
    int e[MAXN][MAXN],n,m,a,b;
    int main(){
    	n=read(),m=read();
    	memset(e,0x3f,sizeof(e));
    	for(int i=1;i<=m;i++){
    		int x=read(),y=read(),l=read();
    		e[x][y]=l;e[y][x]=l;
    	}
    	for(int k=1;k<=n;k++){
    		for(int i=1;i<=n;i++){
    			for(int j=1;j<=n;j++){
    					e[i][j]=min(e[i][j],e[i][k]+e[k][j]);
    			}
    		}
    	}
    	a=read(),b=read();
    	if(e[a][b]==0x3f3f3f3f)cout<<"No path";
    	else
    	printf("%d",e[a][b]);
    }
    

    信息

    ID
    1
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    843
    已通过
    300
    上传者