競技プログラミング
ABC 339
ABC 339 に参加した。
A 問題
では接尾辞と拡張子を混同して混乱した。うーむ
B 問題
ではシミュレーションを行った。 Haskell
で解くためには、可変配列および位置・方向を状態として持つ必要があってかなりハードルが高いと思う。
とにかく AC するためには、 IORef
に位置と方向を載せれば良い。僕は
foldM
を使った。
StateT
と PrimMonad
を使う解答
が一番好みだった。
C 問題
では累積和を取ってから最小値が 0 となるようにオフセットを決めれば良かった。
D 問題 は
第 11 回アルゴリズム実技検定 - I
などの類題で、すべての変数の組み合わせを 1 つの盤面とみなせば良い。特に今回の問題では
(pos1, pos2)
で盤面を表す。後は頑張って BFS を実装する。
添字が 4 次元ともなると index
が非常に低速になってしまった。
cojna 氏の提出
にあるビット操作を利用した encode/decode 方式を検討したい。ただし配列の長さは \(2^n\)
になって余分なメモリを使うと思う。
E 問題 は受け取る DP
の気分でセグメント木を使って高速化した。
F 問題
は多倍長整数を使った全探索で通ってしまった。乱択?で upsolve したい。
Misc
React 入門 1 週目
React 入門 - 1: 三目並べ を投稿した。 Web
開発に入門したい。
BOOX Palma
BOOX Palma を購入しました
を投稿した。 E-Ink 端末上で見ると、 Kindle 以外のアプリの背景や文字が汚い。 Chrome を Reader
mode にしても汚い。対策を考えたい。