2023-06-07 下の子の発熱 / 区間分割の仕方を最適化する問題 を解いた
今度は下の子が発熱。やれやれ……。
bouzuya/tsukota のアカウント共有を追加した。ユーザー ID の入力が面倒なので QR コードなどで読み込むなどの機能がほしい。
あとは共有先 (他の箇所) で更新されることが増えたことで、手動での再読み込みが欲しくなった。
- 区間分割の仕方を最適化する問題 (オリジナル問題)
https://atcoder.jp/contests/pastbook2022/tasks/pastbook2022_a
- https://atcoder.jp/contests/pastbook2022/submissions/42062332
- 解説 AC
- DP
- 解説を聞くと分かるんだけどパッと浮かばない
- 区切る or 区切らないの 2^(n-1) さえ見えてなかった
- 全探索っぽく、右端をひとつずつ進めつつ、それに対応する左端を走査・更新していく
use proconio::input;
fn main() {
input! {
n: usize,
c: [[usize; n + 1]; n + 1],
}
let inf = 1_usize << 60;
let mut dp = vec![inf; n + 1];
dp[0] = 0_usize;
for i in 0..n {
for j in 0..=i {
dp[i + 1] = dp[i + 1].min(dp[j] + c[j][i + 1]);
}
}
let ans = dp[n];
println!("{}", ans);
}
今日のコミット。