- 传递闭包是什么东西呢?就是形如一个集合,如果元素<x,y>、<y,z>在集合里,那么元素<x,z>也在集合里。放到图里就是说如果点x到y可到达,那么x和y就有一条边相连。放到矩阵里就是<x,y>是1。那么这个集合本身就是一个传递闭包。如果这个集合不满足这个性质呢?那么我们就要求他的传递闭包,让他变成一个“完整”的图。
rep(i,1,n)
rep(j,1,n)
rep(k,1,n)
v[i][j]=v[i][k]|v[k][j];
- 上面的传递闭包算法类似矩阵乘法,先说一下矩阵乘法吧,两个矩阵相乘,就是第一个矩阵的第x行和第二个矩阵的第y列相乘得到的!那么矩阵相乘的时候就有意思了,我们就可以得到,最后如果得到的结果为1,即<x,y>为1。那么<x,y>就是可到达的,并且是从x到y。
鸣谢