#P005757. 路径规划

    ID: 5757 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 3 上传者: 标签>25-12-B组月赛T4动态规划搜索基础普及/提高−

路径规划

题目描述

在一座新建的科技园中,有一片由 (N×NN \times N) 个方格组成的规划区域。工作人员需要从左上角位于 (1,1)(1, 1) 位置的控制室出发,前往右下角位于 (N,N)(N, N) 位置的中央机房。

为了便于快速抵达目的地,工作人员只能向右或向下移动。部分位置尚未施工完成,被临时围起,无法通行;其他位置均可自由经过。

工作人员还需要遵守一条特殊限制:在整个行进过程中,最多可以改变前进方向的 KK 。改变方向指的是:从"向右"变为"向下"或从"向下"变为"向右"。(即:在当前一步与上一步方向不同时,路径的起始方向不计入改变方向的次数)

若两条路径中存在至少一个经过的方格不同,则认为它们是不同的路径。

请计算工作人员从控制室到达中央机房一共有多少条合法路径。

输入格式

第一行输入整数 TT,表示测试组数。

每组测试数据格式如下:

  • 第一行输入两个整数 NNKK
  • 接下来输入 NN 行,每行一个长度为 NN 的字符串。
    • . 表示该位置可以通过。
    • # 表示该位置被围挡,不可通过。

所有数据,保证左上角与右下角均为 .

输出格式

输出共 TT 行,第 ii 行输出第 ii 组数据的合法路径数量。

样例 #1

输入

7
3 1
...
...
...
3 2
...
...
...
3 3
...
...
...
3 3
...
.#.
...
3 2
.##
###
##.
3 3
.#.
#..
...
4 3
...#
.#..
....
#...

输出

2
4
6
2
0
0
6

样例 #2

输入

3
5 1
.....
.....
.....
.....
.....
6 2
......
......
......
......
......
......
7 3
.......
.......
...#...
.......
.......
.......
.......

输出

2
10
50

样例 #3

输入

5
10 1
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
8 2
........
........
...##...
..#..#..
..#..#..
...##...
........
........
12 1
............
............
............
............
............
............
............
............
............
............
............
............
10 2
..........
..........
..........
..........
...#...#..
..........
..........
..........
..........
..........
11 3
...........
...........
...........
...........
...........
...........
...........
...........
...........
...........
...........

输出

2
6
2
15
182

样例说明

样例 1 说明

我们可用由 R(向右)与 D(向下)组成的字符串表示一条路径。

  • 第 1 组样例共有两条路径:DDRRRRDD
  • 第 2 组样例共有四条路径:DDRRDRRDRDDRRRDD
  • 第 3 组样例共有六条路径。
  • 第 4 组样例中间位置被围挡,只剩两条路径可行。
  • 第 5 与第 6 组样例由于阻挡布局,无法抵达终点。
  • 第 7 组样例共有六条路径,如 DDRDRRRRDDRD 等。

数据范围

对于 100%100\% 的数据,满足 2N502 \le N \le 501K31 \le K \le 31T501 \le T \le 50

测试点编号 KK
121 \sim 2 K=1K = 1
353 \sim 5 K=2K = 2
6106 \sim 10 K=3K = 3