atcoder#ABC259H. [ABC259Ex] Yet Another Path Counting

[ABC259Ex] Yet Another Path Counting

配点 : 600600

問題文

NN 行横 NN 列のマス目があり、上から ii 行目、左から jj 列目のマスには整数のラベル ai,ja_{i,j} が付けられています。 いずれかのマスから始めて右または下に隣接するマスへの移動を 00 回以上繰り返すことで得られる経路のうち、始点と終点のラベルが同じものの個数を 998244353998244353 で割った余りを求めてください。 なお、22 つの経路は通ったマス(始点・終点含む)の集合が異なる場合に区別します。

制約

  • 1N4001 \leq N \leq 400
  • 1ai,jN21 \leq a_{i,j} \leq N^2
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN

a1,1a_{1,1} \ldots a1,Na_{1,N}

\vdots

aN,1a_{N,1} \ldots aN,Na_{N,N}

出力

答えを出力せよ。

2
1 3
3 1
6

条件を満たす経路は以下の 66 個です。(上から ii 行目、左から jj 列目のマスを (i,j)(i,j) として、各経路で通るマスを順に示しています)

  • (1,1)(1,1)
  • (1,1)(1,1)(1,2)(1,2)(2,2)(2,2)
  • (1,1)(1,1)(2,1)(2,1)(2,2)(2,2)
  • (1,2)(1,2)
  • (2,1)(2,1)
  • (2,2)(2,2)