Hdu 3631 Shortest Path(Floyd插点)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3631

思路:Floyd,对于已求出最短路的图,若增加一点k及相应的边,则只需将k当做中间节点更新点u与点v的距离即可。因此,每增加一个标记点时,则将标记点当做中间节点更新最短路径,由于点数只有300,时间上可以承受。

#include
#include
#include
#include
using namespace std;
typedef long long LL;
const int maxn=300+50;
const int INF=0x3f3f3f3f;
int n,m,q;
int flag[maxn];
LL g[maxn][maxn];
void Floyd(int k)
{
    for(int i=0; i=INF) printf("No such path\n");
                    else printf("%lld\n",g[x][y]);
                }
            }
        }
    }
    return 0;
}



你可能感兴趣的:(OJ_Hdu,图论_最短路,ACM)