注意,题如果涉及交上去评测,就一定不要写这个算法,因为你可能连1/10的测试点都过不去...
我们这里只需要开一个二维数组,有路的地方存储点,没有路的地方直接无穷大;
接着直接floyed
代码:
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int d[310][310];
void floyd()
{
for(int k=1;k<=n;k++)
d[i][i]=0;
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
}
int main()
{
memset(d,0x3f,sizeof(d));
//输入即可
}
这个代码可以帮助你直接求出所有点到所有点的最短路,所以直接循环,时间就别想了,肯定很长,适合填空题时写这个代码,然后直接写答案即可;’