hdu 3631 Shortest Path 最短路径+插点法+floyd

题目链接

题意:给出n个点,m条边,q个操作。对两个点的路径不得经过未标记的点。操作可以标记点或者询问两个点之间的距离,若操作非法则返回指定语句,否则执行操作。

作为中间点,一个点一个点插入,理解Floyd的过程即可。

#include 
#include
#include
#include
#define N 330
#define INF 0x7ffffff

using namespace std;

int mp[N][N],v[N],n,m,q;

void floyd(int k)
{
    for(int i=0;iw)  mp[u][v]=w;
        }
        if(kase)    cout<=INF)   cout<<"No such path"<

你可能感兴趣的:(最短路径)