传递闭包

    技术2022-05-20  35

     在图中假设i连通j,j连通k,k连通.....q,则i与q是连通的,这时可用传递闭包的方式求解:

    /* linkable:记录各结点的连通性,用前需初始化 nNode:为图中的结点数 */ const int MAXN = 400; void fun(const int& nNode, int linkable[MAXN][MAXN]) { for(int i=1; i<=nNode; i++) linkable[i][i] = 1; for(int k=1; k<=nNode; k++) for(int i=1; i<=nNode; i++) for(int j=1; j<=nNode; j++) linkable[i][j] = linkable[i][j] || (linkable[i][k] && linkable[k][j]); }


    最新回复(0)