po

アメちゃん

ABC023 C問題:収集王
C: 収集王 - AtCoder Beginner Contest 023 | AtCoder

問題概要

  •  R\times Cマスの盤面が与えられて、そのうち Nマスには飴が置いてあります。
  • 盤面の任意の1マスに対して次の操作によって飴を獲得できます。
    1. まず、そのマスと同じにある全てのマスについて(存在するなら)飴を獲得します。
    2. 次に、そのマスと同じにある全てのマスについて(存在するなら)飴を獲得します。
  • このとき、獲得する飴がちょうど K個になるようなマスの個数を求めます。

たとえば、下図のAマスでは2つ、Bマスでは3つ飴が獲得できることになります。飴は紫色です。

f:id:poyopoyoyon:20160717205858p:plain




部分点ダッシュ

部分点を取るためには、盤面の全マス( R\times C個)について獲得できる飴の個数を計算して Kに等しいマスの個数をカウントすればよさそうです。上図のAマスのようなマスでは、飴の個数を二重に数えないように注意が必要です。

満点解説

満点を取る方法はよく分からないので解説を見ましょう。

www.slideshare.net

・・・

・・・・・・

・・・・・・・・・

・・・・・・・・・・・・

・・・・・・・・・・・・・・・





















































































f:id:poyopoyoyon:20160717211234j:plain

ソースコード

というわけで、つらいつらいしながら書いたコードを示します。

感想

「配列の添字になる(また別の)配列」みたいなので頭がおかしくなって時間が溶けました。変数名を適切につければ、解決するんでしょうか。