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]);
```