没啥好说的,就解释一下路数的计算吧。
在第k-1阶floyd方阵中
令从a到b的路数表示为count[a][b][k-1]
那么第k阶的时候自然有:
count[a][b][k](+)=count[a][k][k-1]*count[k][b][k-1]
因为小于等于k的floyd方阵中,a到k的最短路最多一定是k-1阶,不可能是k(不经过自己。。)
因此呢,就有了上面这一行~
之后么,状态压缩一下就成了:
count[a][b](+)=count[a][k]*count[k][b]
磨了一上午。。还是只有90,不知道为啥第二组有个数没输出