| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1137 人关注过本帖
标题:求教这个弗洛伊德算法求最短路径的程序哪里错了。
只看楼主 加入收藏
qq826647235
Rank: 2
等 级:论坛游民
帖 子:37
专家分:10
注 册:2016-5-4
结帖率:63.64%
收藏
 问题点数:0 回复次数:0 
求教这个弗洛伊德算法求最短路径的程序哪里错了。
求教这个弗洛伊德算法求最短路径的程序哪里错了。
自己测试了几组数据都没错。。但是判题的有的数据过不去,也不知道是什么数据


#include<stdio.h>

int n;
int D[100][100];
int area[100][100];
int street[100][100][100];

void floyd()
{
    int a,b,c;
    int i,j,k;
    int sum;
    for(k=0;k<n;k++)
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
            {
                sum=D[i][k]+D[k][j];
                if(sum<D[i][j])
                {
                    D[i][j]=sum;
                    for(a=0;;a++)
                    {
                        if(street[i][k][a]==-1)
                        break;
                    }
                    for(b=0;b<a-1;b++)
                    {
                        street[i][j][b]=street[i][k][b];
                    }
                    for(a=0;;b++,a++)
                    {
                        if(street[k][j][a]==-1) break;
                        street[i][j][b]=street[k][j][a];
                    }
                }
            }
}

int main()
{
    int m;
    int a,b,c;
    int StartNode,EndNode;
    scanf("%d",&n);
    for(a=0;a<n;a++)
        for(b=0;b<n;b++)
            for(c=0;c<100;c++)
            {
                street[a][b][c]=-1;
            }
    for(a=0;a<n;a++)
        for(b=0;b<n;b++)
        {
            street[a][b][0]=a;
            street[a][b][1]=b;
        }
    for(a=0;a<n;a++)
        for(b=0;b<n;b++)
        {
            scanf("%d",&area[a][b]);
        }
    for(a=0;a<n;a++)
        for(b=0;b<n;b++)
        {
            D[a][b]=area[a][b];
        }
    floyd();

    scanf("%d",&m);
    for(a=0;a<m;a++)
    {
        scanf("%d%d",&StartNode,&EndNode);
        for(b=0;;b++)
        {
            if(street[StartNode][EndNode][b]==-1) break;
            printf("%d\n",street[StartNode][EndNode][b]);
        }
    }

    return 0;
}
搜索更多相关主题的帖子: 弗洛伊德 include 
2016-05-22 13:39
快速回复:求教这个弗洛伊德算法求最短路径的程序哪里错了。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052371 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved