/ Vijos / 题库 /

放棋子

放棋子

时间限制:1秒  内存限制:256M


【题目描述】

  在 \(M\) 行 \(N\) 列的棋盘格子上放置若个棋子,有些格子无法放置棋子,且要求任意两个棋子所在的格子不能有公共边。如果不考虑棋子的总块数,那么,一共有多少种放置方案?当然,一个棋子都不放也是一种方案。

【输入格式】

  第一行:两个整数 \(M\) 和 \(N\),用空格隔开。
  第 \(2\) 到第 \(M+1\) 行:每行包含 \(N\) 个用空格隔开的整数,描述了每个格子的状态。第 \(i+1\) 行描述了第 \(i\) 行的格子,所有整数均为 \(0\) 或 \(1\) ,是 \(1\) 的话,表示该格子可以放棋子,\(0\) 则表示无法放棋子。

【输出格式】

  一个整数,即方案数除以 \(10^8\) 的余数。

【输入输出样例】

 Input

2 3
1 1 1
0 1 0

 Output

9

【样例说明】

  按下图把各格子编号:
说明
  只开放一个棋子的话,有4种方案:选1、2、3、4中的任一个格子。若放两个棋子的话,有3种方案:13、14和34。若放三个棋子,只有一种方案:134。再加一个棋子也不放的那一种,总方案数为4+3+1+1=9种。

【数据限制】

  对于 \(100\%\) 的数据,对于全部数据,\(1≤M,N≤12\)。

【来源】

  Mr.he

信息

ID
3214
难度
9
分类
动态规划 | 状态压缩DP 点击显示
标签
递交数
1
已通过
1
通过率
100%
被复制
3
上传者