対頂角とするグリッド内の長方形領域について、領域内の青マスの連結成分数を出力せよ。隣接する青マスの間に辺を張ることによってできるグラフは明らかに森である。そこから、「領域外の頂点を消せば各木が分解されるから、それをなんとか数えられないかな〜」という方針で1時間ほど考えるが諦める。Twitterで「木でないとこの問題は成立しない」「分解するって方針は多分無理」(意訳)といったヒントを貰うも、やはり思いつかない。(ヒントを教えてくださったtempuraさん、ありがとうございました。)このままでは一生思いつかないと察して、ついにeditorialの頭の方だけちら見することを決意。こんな文面が目に入ってきた。大きいという性質を持っています。辺数、すなわち黒マスの数から、黒マスが隣接する箇所の数を引いたものになります。発想の美しさに思わずため息が出た。ここまでくれば後は実装するだけだ。頂点数と辺数に関する二次元累積和を作ればいい。頂点の方はやるだけなのだが辺の方は1つの変数だけではどうにも上手くいかない。これは「横の辺」と「縦の辺」で別々に変数を作ることで無事解決できた。0;}実装自体はARCの500点程度かなという印象。次類題が出たときは確実に潰す。1時間考えて無理ならeditorialをちょっと見よう。前編(A-C)久しぶりの解説記事。(Div2)の振り返り。解説ABC100の振り返り&自己流解説。お祭り感あって楽しい回でした。公式はてなブログをはじめよう!misteerさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。