2023-07-23から1日間の記事一覧
ABC194E Mex を求めるアルゴリズムまずは問題を保留して,vector \(a\) が与えられたとき,\(mex(a)\) を求める手順を考える. 小さい自然数から実験してみれば,\(i \in \mathbb{N}\) に対して, \(mex(a) = i\) となるのは,任意の\(j \in i\) に対して \(…
ABC311B まず \(N = 1\) の場合を考える. vector \(v\) に対して何個 o が連続しているかは, for i in v.size() を回して,\(v[i]\) が o だったら カウント \(cnt\) を増やして,そうで無ければ \(cnt\) を 0 に戻す. \(i\) ごとに chmax(ans, cnt) を行…
ABC311C すべての頂点から \(1\) 本ずつ辺が出ているので, どの頂点から始めてもサイクルにたどり着く. サイクルの検出は,訪れた頂点を記録しておいて, すでに訪れた頂点に再び来たときにサイクルがあると分かる. 使っている記号,マクロ等 "https://ec…
ABC311 D BFS で求まる. 訪れたマスを記録しておいて,1回しか調べないことにする. ただし,通過したマスと止まったマスは区別する. 遷移するとき,ぶつかるまで一気に進むので while 文で実装する. 使っている記号,マクロ等 "https://ecsmtlir.hatenab…
ABC311E \(H, W \leq 3,000\) であるから,\(O(HW)\) は間に合う. 升目を全探索できるので,その上で穴の無い正方形を高速に数える. 升目 \(\,(x,y)\,\) を固定したとき,\( (x,y) \) を左上とする正方形のうち, 穴の無いものを数えたい. これは単調性が…