ABC224 E - Integers on Grid (500)
数値の小さい方から大きい方へ移動するので逆に大きい方から何回移動できるか考える
ある点の移動可能回数はその点から移動できる先の内移動回数最大の所+1になる
愚直に行うと$ \mathcal{O}(N(H+W))でTLEする
そのため、各行と各列で分けて最大値を持っておくことにする
それぞれの頂点からインデックスへの変換を持っておく
書かれている数字毎にマスをまとめて数字の降順で以下を行う
それぞれの点について列、行の内最大になる方の移動回数を自身の移動回数とする
それぞれの点について自身の移動回数+1で自身の列、行を更新する
Mapへの追加が$ \mathcal{O}(N \log N)でボトルネック