问题描述
给定一个 H 行 W 列的网格,令 (i,j) 表示从上到下第 i 行、从左到右第 j 列的格子。
当 Si,j 为 . 时,该格子为空地;当 Si,j 为 # 时,该格子为障碍物。
请统计满足以下条件的路径数量:
一条路径表示为长度为 K+1 的序列:
((i0,j0),(i1,j1),…,(iK,jK))
满足:
- 对于每个 0≤k≤K,都有1≤ik≤H,1≤jk≤W
且 Sik,jk=’.’;
- 对于每个 0≤k<K,都有∣ik+1−ik∣+∣jk+1−jk∣=1
即每次只能向上、下、左、右移动一步;
- 对于任意 0≤k<l≤K,都有(ik,jk)=(il,jl)
即路径中不能重复经过同一个格子。
请输出满足条件的路径总数。
输入格式
输入从标准输入读入,格式如下:
H W K
S1,1S1,2…S1,W
S2,1S2,2…S2,W
⋮
SH,1SH,2…SH,W
输出格式
输出一个整数,表示满足条件的路径数量。
样例输入1
2 2 2
.#
..
样例输出1
2
样例输入2
2 3 1
.#.
#.#
样例输出2
0
样例输入3
10 10 11
....#..#..
.#.....##.
..#...##..
...#......
......##..
..#......#
#........#
..##......
.###....#.
...#.....#
样例输出3
218070
说明
对于样例 1,共有两种合法路径:
- (1,1)→(2,1)→(2,2)
- (2,2)→(2,1)→(1,1)
评测数据规模
- 1≤H,W≤10
- 1≤K≤11
- H,W,K 均为整数
- 每个 Si,j 都是
. 或 #
- 网格中至少存在一个空地格子