P1879 [USACO06NOV] Corn Fields G
题目描述
农场主 \(\rm John\) 新买了一块长方形的新牧场,这块牧场被划分成 \(M\) 行 \(N\) 列 \((1 \le M \le 12, 1 \le N \le 12)\),每一格都是一块正方形的土地。 \(\rm John\) 打算在牧场上的某几格里种上美味的草,供他的奶牛们享用。
遗憾的是,有些土地相当贫瘠,不能用来种草。并且,奶牛们喜欢独占一块草地的感觉,于是 \(\rm John\) 不会选择两块相邻的土地,也就是说,没有哪两块草地有公共边。
\(\rm John\) 想知道,如果不考虑草地的总块数,那么,一共有多少种种植方案可供他选择?(当然,把新牧场完全荒废也是一种方案)
输入格式
第一行:两个整数 \(M\) 和 \(N\),用空格隔开。
第 \(2\) 到第 \(M+1\) 行:每行包含 \(N\) 个用空格隔开的整数,描述了每块土地的状态。第 \(i+1\) 行描述了第 \(i\) 行的土地,所有整数均为 \(0\) 或 \(1\) ,是 \(1\) 的话,表示这块土地足够肥沃,\(0\) 则表示这块土地不适合种草。
输出格式
一个整数,即牧场分配总方案数除以 \(10^8\) 的余数。
输入输出样例 #1
输入 #1
2 3
1 1 1
0 1 0
输出 #1
9
思路
状压模版题
这道题主要就是类似于棋盘问题,可以直接用位运算来判断上下两行状态是否冲突,然后就方案数的计数也就裸出来了,一般这种题我喜欢写记忆化,不大喜欢写循环