ひらめの日常

日常のメモをつらつらと

AtCoder: ABC045-D すぬけ君の塗り絵 (400)

すぬけ君の塗り絵

問題はこちら

atcoder.jp

自分が気づいたところ

 H=O(10^{5}), W=O(10^{5}) なので,全てのマス目を調べていくのは間に合わなさそう.そこで,黒く塗られているマス目だけに注目することにした.

一つの黒いマス目が影響を及ぼすマス目は,周囲の9マスだけである.これを考慮すると, 3\times3のマス目の中心になり得るマス目は最大でも  N\times 9 になるので,間に合いそう.よって, 3\times3 の中心のマス目として考えられるものに対して周囲の黒いマス目を数え,すでに見たマス目はmap<pair(int, int)>で管理することによってACした.

実行時間1946 ms...

Submission #4911309 - AtCoder Beginner Contest 045

学んだこと

  • 他と違うものに注目する(?)
  • unordered_mapのキーにpairは入らないけど,mapのキーには入る.(pair内部にhashは用意されていないが,比較関数は定義されているので)