Date:2022.04.08
题意描述:
农夫约翰的土地由 M×N 个小方格组成,现在他要在土地里种植玉米。
非常遗憾,部分土地是不育的,无法种植。
而且,相邻的土地不能同时种植玉米,也就是说种植玉米的所有方格之间都不会有公共边缘。
现在给定土地的大小,请你求出共有多少种种植方法。
土地上什么都不种也算一种方法。
输入格式
第 1 行包含两个整数 M 和 N。
第 2…M+1 行:每行包含 N 个整数 0 或 1,用来描述整个土地的状况,1 表示该块土地肥沃,0 表示该块土地不育。
输出格式
输出总种植方法对 108 取模后的值。
数据范围
1≤M,N≤12
输入样例:
2 3
1 1 1
0 1 0
输出样例:
9
思路: f [ i ] [ j ] : f[i][j]: f[i][j]:已在前 i i i行放完,且第 i i i行放玉米的状态为 j j j的合法方案数。
首先我们注意到每一行都有荒地,我们标记 h u a n g [ i ] huang[i] huang[i]为第 i i i行荒地的状态,这一位值为1则表示这个点是荒地。
首先我们最新放的第 i i i行状态要合法,即:第 i i i行不能存在连续两个1。因此我们预处理出所有的单行合法状态,之后枚举每一行状态时只枚举这些合法状态即可。
核心思想分三步:
①枚举每一行。
②枚举第 i i i行放的状态