2023-05-15 マグにさよなら / 典型アルゴリズム問題集 E問題を解いた
お気に入りのマグを割ってしまった。1個ではなく手を滑らせて落としたところにもう1個があって2個同時に、だ。さようなら。
https://iris.to/note1a6y353a9d7ctyq3u6lxrxqm07dawxlmeldzzw36hawkfxnwjkswsd3xcxh
- 全点対最短経路問題 (典型アルゴリズム問題集 E問題)
https://atcoder.jp/contests/typical-algorithm/tasks/typical_algorithm_e
- https://atcoder.jp/contests/typical-algorithm/submissions/41441818
- ワーシャルフロイド法で素朴に
- 3 重ループの入れ子を間違えて 3WA
use proconio::input;
fn main() {
input! {
n: usize,
m: usize,
uvc: [(usize, usize, usize); m],
}
let inf = 1_usize << 60;
let mut dist = vec![vec![inf; n]; n];
for i in 0..n {
dist[i][i] = 0;
}
for (u, v, c) in uvc {
dist[u][v] = dist[u][v].min(c);
}
for k in 0..n {
for i in 0..n {
for j in 0..n {
dist[i][j] = dist[i][j].min(dist[i][k] + dist[k][j]).min(inf);
}
}
}
let mut sum = 0_usize;
for i in 0..n {
for j in 0..n {
sum += dist[i][j];
}
}
let ans = sum;
println!("{}", ans);
}
今日のコミット。