很容易想到朴素方程,令$f[i][j]$表示到$i$行,$j$列的方案数
有
$$f[i][j] = \sum f[k][l]\;(k<i,l<j,a[k][l] \neq a[i][j])$$
但显然是$O(n^4)$的,其实这看起来就想二维偏序,但实际它有三个条件,可以$CDQ$分治(但我不会)
考虑吧方程换个形式,令$sum = \sum f[k][l]\;(k<i,l<j)$,$x = \sum f[k][l]\;(k<i,l<j,a[k][l] = a[i][j])$
有
$$f[i][j] = sum - x$$
(类似那道染色的思想)
可以一行一行地推(就能省掉一维),令$sum[i]$