Floyd Warshall === ###### tags: `Algorithm` floyd warshall 是 dp 的思考方式 `dp(i,k,j) = min( dp(i,k-1,j), dp(i,k-1,k)+dp(k,k-1,j))` 可以用 `O(n^3)` bottom-up, 並且壓掉空間複雜度可以壓掉一維變 `O(n^2)` ```cpp //儲存一張圖 for (int i=0,u,v,w; i<m; i++) cin >> u >> v >> w, dis[u][v] = w; for (int k=1; k<=n; k++) for (int i=1; i<=n; i++) for (int j=1; j<=n; j++) dis[i][j] = min(dis[i][j],dis[i][k]+dis[k][j]); ```