迪杰斯特拉邻接矩阵存储方式

原创 2015年07月08日 21:06:14
#include <stdio.h>
int main()
 {
    int a[101][101];
    int i,j,c,d,e,n,m,min,u,k;
    int book[101];
    int dis[101];//1到其余点的的距离
    scanf("%d%d",&n,&m);
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)
        if (i==j)
             a[i][j]=0;
             else a[i][j]=10000;
             for (i=1;i<=m;i++)
             {
                 scanf("%d%d%d",&c,&d,&e);
                 a[c][d]=e;
             }
             book[1]=1;
             for (i=2;i<=n;i++)
                book[i]=0;
                for (i=1;i<=n;i++)
                    dis[i]=a[1][i];//初始化dis[i]为1直接到i的距离
             for (i=1;i<=n-1;i++)//1到剩下n-1个点的距离
             {
                  min=10000;
                 for (j=1;j<=n;j++)
                 {
                     if ((min>dis[j])&&(book[j]==0))
                     {
                        min=dis[j];//找到在未确定的点中离1最近的点,并记录下来
                        u=j;
                     }

                 }
                 book[u]=1;
                 for (k=1;k<=n;k++)
                    if ((a[u][k]!=10000)&&(dis[u]+a[u][k]<dis[k]))//若u能到k且k值不确定且比原来直接到小(只要判断u->i是否为无穷大,因为1->u已经在之前判断过)
                    dis[k]=dis[u]+a[u][k];
             }
             for (i=1;i<=n;i++)
                printf("%d ",dis[i]);
             return 0;
 }







版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

HDU 1874 Dijkstra (迪杰斯特拉)(队列及邻接矩阵)

AC代码(1):/* 关于三个数组:map数组存的为点边的信息,比如map[1][2]=3,表示1号点和2号点的距离为3 dis数组存的为起始点与每个点的最短距离,比如dis[3]=5,表示起始点与3...

POJ-2387-Til the Cows Come Home(迪杰斯特拉)

Til the Cows Come Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 42680 ...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

NYOJ-115-城市平乱(裸迪杰斯特拉)

城市平乱 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市。他在用这N个部队维护着M个城市的治安,这M个城...

最短路径

给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费, 如果最短距离有多条路线,则输出花费最少的。 输入: 输入n,m,点的编号是1~n,然后...

湖大训练赛4 Dwarf Tower

Dwarf Tower Time Limit: 2000ms, Special Time Limit:5000ms, Memory Limit:65536KB Total subm...
  • modiz
  • modiz
  • 2014-07-27 22:44
  • 892

POJ-3268-Silver Cow Party(迪杰斯特拉 多点到star和star到多点)

D - Silver Cow Party Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u ...

POJ-1135-Domino Effect(迪杰斯特拉)

Domino Effect Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10713 Accepte...

HDU-2112-HDU Today

P - 基础最短路 Time Limit:5000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u SubmitStatu...

迪杰斯特拉算法

定义 迪杰斯特拉算法用于计算图中,某一个顶点vi到另外一个顶点vj的最短路径,因为计算从vi到vj的最短路径实际需要计算出vi到vj之前的所有顶点的最短路径,所以实际的计算可能会附带得出vi到图中一部...

POJ-1062-昂贵的聘礼

D - 昂贵的聘礼 Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u SubmitStatu...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)