P1879 [USACO06NOV] Corn Fields G

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

思路

状压模版题

这道题主要就是类似于棋盘问题,可以直接用位运算来判断上下两行状态是否冲突,然后就方案数的计数也就裸出来了,一般这种题我喜欢写记忆化,不大喜欢写循环

posted @ 2025-07-29 16:31  shencheng4014  阅读(7)  评论(0)    收藏  举报