I - Yet Another Grid Task Editorial
			
			by  kyopro_friends
kyopro_friends
			
		
		
		元の問題は、あるマスを黒く塗った時その「下と右下」を黒く塗るというものでしたが、これを「下と右」に変えた問題を考えてみます。
変更後の問題は
\(dp[i][j]=\) \(i\) 行目まで塗り方を決めて、美しいグリッドであり、マス \((i,j)\) を白く、マス \((i,j+1)\) を黒く塗るようなものの個数
として、
\(dp[i][j]=\sum_{k\geq j} dp[i-1][k]\)
のようなDPにより解くことができます。これは累積和をとりながらDPすることで \(O(NM)\) で求めることができます。
元の問題もほとんど同様に解くことができます。
与えられたグリッドを、左上角を下に押し込むように、次のように斜めに変形します
#...#
.....
.....
.....
#....
  ↓
    #
   ..
  ...
 ....
#....
....
...
..
#
こうすると「下と右下」という条件は「下と右」という条件になるため、先に述べた問題と全く同じようにして解くことができます。
				posted:
				
				
				last update:
				
			
