• 多源最短路


    【题目描述】

    已知n个点(n<=100),给你n*n的方阵,a[i,j]表示从第i个点到第j个点的直接距离。        

    现在有Q个询问,每个询问两个正整数,a和b,让你求a到b之间的最短路程。        

    满足a[i,j]=a[j,i]。

    【输入描述】

     第一行一个正整数n,接下来n行每行n个正整数,满足a[i,i]=0,再一行一个Q,接下来Q行,每行两个正整数a和b。

    【输出描述】

    一共Q行,每行一个整数。

    【样例输入】

    3

     0 1 1

    1 0 3

    1 3 0

    1

    2 3

    【样例输出】

    2

    源代码:
    
    #include<cstdio>
    #include<cstring>
    int n,i[101][101];
    int main() //弗洛伊德算法。
    {
        memset(i,0x3f,sizeof(i)); //初始化最大值。
        scanf("%d",&n);
        for (int a=1;a<=n;a++)
          for (int b=1;b<=n;b++)
          {
              scanf("%d",&i[a][b]);
              i[b][a]=i[a][b];
          }
        for (int a=1;a<=n;a++)
          for (int b=1;b<=n;b++)
            for (int c=1;c<=n;c++)
              i[b][c]=i[b][c]>i[b][a]+i[a][c]?i[b][a]+i[a][c]:i[b][c];
        scanf("%d",&n);
        for (int a=1;a<=n;a++)
        {
            int t1,t2;
            scanf("%d%d",&t1,&t2);
            printf("%d
    ",i[t1][t2]);
        }
        return 0;
    }
  • 相关阅读:
    网络流24题-分配问题
    网络流24题-圆桌问题
    git ssh
    SQL Server 添加说明 语句
    问题思路
    数据库事务和锁
    Castle Windsor
    Flask学习笔记11之特殊的装饰器
    python中的"环绕通知"
    Flask学习笔记10之flash
  • 原文地址:https://www.cnblogs.com/Ackermann/p/5394191.html
Copyright © 2020-2023  润新知