网站页面
当前课程
成员
General
主题 1
主题 2
主题 4
主题 5
主题 6
主题 7
主题 8
主题 9
主题 10
主题 11
主题 12
主题 13
主题 14
主题 15
主题 16
主题 17
主题 18
主题 19
主题 20
黑和白
成绩 | 开启时间 | 2014年09月19日 星期五 10:08 | |
折扣 | 0.8 | 折扣时间 | 2014年09月26日 星期五 10:08 |
允许迟交 | 是 | 关闭时间 | 2014年09月26日 星期五 10:08 |
输入文件 | blackandwhite.in | 输出文件 | blackandwhite.out |
【题目描述】
给出一个M行N列的网格,其中部分格子被染色。你将要计算在下面所述的约束下,填满网格剩余部分的方法总数:
网格中的每一个格子都应染成黑白二色之一。网格中所有的黑色格子应当四连通,所有的白色格子也应该四连通。在下面的两张图片中,只有右图是合法的。
另外,不能有全黑或全白的2*2子网格。在下面的两张图中,左边的图片中有2*2的全黑和全白网格,因此不合法,而由图中没有2*2的同色网格,因此是合法的。
不能改变已被染色格子的颜色。所有的格子都必须被染色。
【输入格式】
输入文件的第一行有2个正整数M,N,代表行数和列数
接下来的M行,每行有N个字符,它们代表了开始时M*N网格的状态。这些字符可能是如下三种:
#:一个被染成黑色的格子。
o:一个被染成白色的格子。
.:一个没有染色的格子。
【输出格式】
输出一行一个正整数,即染色方案总数。
【样例输入】
sample 1:
3 3
o..
.##
...
sample 2:
5 5
..#..
.....
....o
o....
.#...
sample 3:
7 5
.....
..o..
#....
.....
..o..
...#.
o....
sample 4:
2 3
###
oo#
sample 5:
6 8
........
........
........
........
.#......
........
【样例输出】
sample 1:
4
sample 2:
0
sample 3:
176
sample 4:
1
sample 5:
71582
【提示】
对于20%的数据,2<=M,N<=4
对于100%的数据,2<=M,N<=8
【来源】
Problemsetter: Jimmy Mårdell, Member of Elite Problemsetters' Panel
刘汝佳,《算法竞赛入门经典训练指南》,P387 例题3