Problem A: 排兵布阵
Memory Limit:128 MB
Time Limit:2.000 S
Judge Style:Text Compare
Creator:
Submit:247
Solved:77
Description
佳佳在玩一个有趣的单机塔防游戏。游戏的地图是一个规模为N*N的巨大沼泽地,在沼泽地上有一些突出的小岛以 ’#’ 表示,佳佳想要在岛上放恰好K个低射炮台,已知炮台的攻击范围是一个十字形,如下所示:
OOPOO
OOPOO
PPPPP
OOPOO
OOPOO
炮台的放置必须满足下列两个要求:
1.炮台必须架设在小岛上,不可以放置在沼泽地上(沼泽地用’.’表示)。
2.炮台与炮台之间不可以相互攻击,也就是说任意一个炮台不可以在其它炮台的射程范围之内。
现在佳佳想要知道,在这张地图上恰好放置K个炮台有几种不同的方案呢?
Input
输入有多行,第一行为两个正整数N、K,表示地图的大小为N*N,佳佳需要在地图上放置恰好K个炮台。
接下来有N行字符串,每行有N个字符,仅仅包含’.’和’#’(字符间没有空格),描述地图。
Output
输出共 1行,表示方案数。
Sample Input Copy
2 1
#.
.#
Sample Output Copy
2
HINT
【输入输出样例2】
chess.in |
chess.out |
4 4 ...# ..#. .#.. #...
|
1 |
【数据范围】
对于100%的数据1≤N ≤8,1≤K ≤N