zoukankan      html  css  js  c++  java
  • C++ 弗洛伊德算法

    {
        for(j=1;j<=n;j++)
        {
            if ( e[i][j] > e[i][1]+e[1][j] )
                  e[i][j] = e[i][1]+e[1][j];
        }
    }
    

      动态规划的转移方程!

    用二维数组,具体的见CSDN博客;

    #include<stdio.h>
    #include<stdlib.h>
    #define max 1000000000
     
    int d[1000][1000],path[1000][1000];
    int main()
    {
        int i,j,k,m,n;
        int x,y,z;
        scanf("%d%d",&n,&m);
         
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++){
                d[i][j]=max;
                path[i][j]=j;
        }
         
        for(i=1;i<=m;i++) {
                scanf("%d%d%d",&x,&y,&z);
                d[x][y]=z;
                d[y][x]=z;
        }
         
        for(k=1;k<=n;k++)
            for(i=1;i<=n;i++)
                for(j=1;j<=n;j++) {
                    if(d[i][k]+d[k][j]<d[i][j]) {
                        d[i][j]=d[i][k]+d[k][j];
                        path[i][j]=path[i][k];
                    }
                }
        for(i=1;i<=n;i++)
            for(j=1;j<=i;j++)
              if (i!=j) printf("%d->%d:%d
    ",i,j,d[i][j]);
        int f, en;
        scanf("%d%d",&f,&en);
        while (f!=en) {
            printf("%d->",f);
            f=path[f][en];
        }
        printf("%d
    ",en);
        return 0;
    }
    

      

  • 相关阅读:
    luoguP2939 [USACO09FEB]改造路Revamping Trails
    出题
    数字游戏
    统一异常处理
    数据验证
    拦截器
    数据绑定和表单标签库
    类型转换和格式化
    Spring MVC入门
    4springboot:日志(下)
  • 原文地址:https://www.cnblogs.com/FXY-180/p/9467599.html
Copyright © 2011-2022 走看看