loj#P2731. 「JOISC 2016 Day 1」棋盘游戏
「JOISC 2016 Day 1」棋盘游戏
题目描述
题目译自 JOISC 2016 Day1 T3 「ソリティア」
JOI 君有一个棋盘,棋盘上有 行 列 的格子。JOI 君有若干棋子,并想用它们来玩一个游戏。初始状态棋盘上至少有一个棋子,也至少有一个空位。
游戏的目标是:在还没有放棋子的格子上依次放棋子,并填满整个棋盘。在某个格子上放置棋子必须满足以下条件之一:
- 这个格子的上下一格都放有棋子;
- 这个格子的左右一格都放有棋子。
JOI 君想知道有多少种从初始状态开始,并达到游戏目标的方案,这个答案可能会非常大。请你帮 JOI 君算出这个答案,并对 取模。
输入格式
第一行有一个整数 ,表示棋盘的大小为纵向 格,横向 格。
接下来的三行均为仅由 o
和 x
组成的字符串。这三行中第 行的第 个字符表示棋盘中从上到下第 行,从左到右第 个棋子的状态。其中 o
表示开始时有棋子被放置,x
表示开始时这个位置为没有放置着棋子。
输出格式
一个整数,表示符合条件的方案个数。
3
oxo
xxo
oxo
14
10
ooxooxoxoo
xooxxxoxxx
oxoxoooooo
149022720
10
ooxoxxoxoo
oxxxxxoxxx
oxooxoxoxo
0
20
oxooxoxooxoxooxoxoxo
oxxxoxoxxxooxxxxxoox
oxooxoxooxooxooxoxoo
228518545
数据范围与提示
对于所有数据,满足 。
Subtask | 分值 | 其他 | |
---|---|---|---|
初始时空格子少于 个。 | |||
初始时对于任意一个空格子,其上下左右相邻的空格子数不超过 个。 | |||
初始时没有连续 个空格子并成一列 | |||
无 | |||