2024-01-03 初詣 / 仮説 #1 / PAST #2 H
初詣。
さい銭用にコインケースから 5 円を持って行った。 2022-02-06 に買ったもの。 ATM での小銭の扱いが有料化されるのに合わせて導入した。毎月財布に残っている小銭をコインケースに移す運用にしている。いつでも中身を取り出せる貯金箱。両替に便利。こういうときのために一家に一台くらいはあっていいものだと思った。
上の子が帰り道に 500 円のりんご飴を欲しがった。ぐずりそうな子どもを連れてそばにあったコンビニに入って 100 円と 120 円の菓子を買い、「 500 円のりんご飴を買うのといま買ったお菓子をだいたい 2 個ずつ買うのとどちらが良い? 場による価値もあるから一概には言えないけど」と 500 円で買えるものにもいろいろあることを説明した。
Dev Container の設定を修正した。
https://code.visualstudio.com/remote/advancedcontainers/connect-multiple-containers
どう動いているのかいまだによく分かっていないが、雰囲気で使っている。
仮説 #1
- スマートフォンを触る割合を減らしてパソコンを触る割合を増やせば、書けるコード量が増える説
- 観た映画や遊んだゲームの記録を避ければ、そこに掛ける時間の価値が下がる説
- 最低 15 分はかけて blog 記事を書けば、より良いふりかえりができる説
PAST #2 第二回 アルゴリズム実技検定 過去問
- H - 1-9 Grid
https://atcoder.jp/contests/past202004-open/tasks/past202004_h
- 提出: https://atcoder.jp/contests/past202004-open/submissions/49004637
- 経路で何を踏むかは問題じゃないので
S -> 1
1 -> 2
のように最短距離を求めて総和を取れば良い - 距離の求め方は単純に前のマスと次のマスの垂直の差の絶対値と水平の差の絶対値の和
- 途中の数字が複数箇所になっても
N <= 50, M <= 50
なので間に合う
use proconio::{input, marker::Chars};
fn main() {
input! {
n: usize,
m: usize,
a: [Chars; n],
};
let mut b = vec![vec![]; 11];
for i in 0..n {
for j in 0..m {
match a[i][j] {
'S' => {
b[0] = vec![(i, j)];
}
'G' => {
b[10] = vec![(i, j)];
}
_ => {
b[(a[i][j] as u8 - b'0') as usize].push((i, j));
}
}
}
}
let inf = 1_000_000_000_i64;
let mut dist = vec![vec![inf; m]; n];
dist[b[0][0].0][b[0][0].1] = 0;
for i in 1..=10 {
let mut next = vec![vec![inf; m]; n];
for (pr, pc) in b[i - 1].iter().copied() {
let pd = dist[pr][pc];
for (nr, nc) in b[i].iter().copied() {
let nd = pd + (pr as i64 - nr as i64).abs() + (pc as i64 - nc as i64).abs();
next[nr][nc] = next[nr][nc].min(nd);
}
}
dist = next;
}
let ans = dist[b[10][0].0][b[10][0].1];
let ans = if ans == inf { -1 } else { ans };
println!("{}", ans);
}
今日のコミット。
- rust-atcoder 1 commit
- expo-push-notification-client-rust 2 commits
- serde-firestore-value 6 commits
- Merge pull request #12 from bouzuya/dependabot/cargo/serde_json-1.0.110
- Bump serde_json from 1.0.108 to 1.0.110
- Merge pull request #11 from bouzuya/dependabot/cargo/thiserror-1.0.56
- Merge pull request #10 from bouzuya/dependabot/cargo/anyhow-1.0.79
- Bump thiserror from 1.0.53 to 1.0.56
- Bump anyhow from 1.0.78 to 1.0.79
- firestore-path 6 commits
- Merge pull request #9 from bouzuya/dependabot/cargo/anyhow-1.0.79
- Bump anyhow from 1.0.77 to 1.0.79
- Merge pull request #8 from bouzuya/dependabot/cargo/google-api-proto-1.452.0
- Merge pull request #7 from bouzuya/dependabot/cargo/thiserror-1.0.56
- Bump google-api-proto from 1.450.0 to 1.452.0
- Bump thiserror from 1.0.52 to 1.0.56