Floyed的模板
Floyed的本质就是动态规划算法
时间复杂度O(n^3)
代码如下:
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
const int maxn = 115;
using namespace std;
int n,q;
int dp[maxn][maxn];
int map[maxn][maxn];
void rd(int &x) { scanf("%d",&x);}
int main()
{
rd(n);
for(int i = 1;i <= n;i++)
for(int j = 1;j <= n;j++)
{
rd(map[i][j]);
dp[i][j] = map[i][j];
}
for(int k = 1;k <= n;k++)
for(int i = 1;i <= n;i++)
for(int j = 1;j <= n;j++)
dp[i][j] = min(dp[i][j] ,dp[i][k] + dp[k][j]);
rd(q);
for(int i = 1;i <= q;i++)
{
int x,y;
rd(x);rd(y);
printf("%d\n",dp[x][y]);
}
return 0;
}
THE END
By Peacefuldoge