求助
查看原帖
求助
569235
w9095楼主2022/2/6 10:41
    #include <stdio.h>
    #define MAX 1001
    main()
    {
    int e[MAX][MAX];
    int i=0,j=0,k=0,n=0,m=0,q=0,u=0,v=0,w=0,inf=99999999;
    int dis[MAX];
    
    for(i=1;i<MAX;i++)
        for(j=1;j<MAX;j++)
    	    if(i==j)e[i][j]=0;
    	    	else e[i][j]=inf;
    
    for(i=0;i<MAX;i++)
        dis[i]=0;
    		
    scanf("%d%d%d",&n,&m,&q);
    for(i=0;i<m;i++)
        {
    	scanf("%d%d%d",&u,&v,&w);
    	e[u][v]=w;
    	e[v][u]=w;	
    	}
    
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
    	    for(k=1;k<=n;k++)
    		    if(e[i][k]+e[k][j]<e[i][j])
    			   e[i][j]=e[i][k]+e[k][j];
    
    for(i=0,j=0;i<q;i++)
        {
    	scanf("%d%d",&u,&v);
    	dis[j++]=e[u][v];   
    	}
    
    for(i=0,j=0;i<q;i++)
        printf("%d",dis[j++]);
    
    return 0;
    }

我用的是Floyd,然后提示说前四个点WA,后面全是RE,怎么办? 请求大佬们指教,谢谢!

2022/2/6 10:41
加载中...