CF1921G Mischievous Shooter

题目描述

有一次,调皮捣蛋的射手 Shel 来到一个大小为 $n \times m$ 的矩形场地上,这个场地被划分为若干个单位方格。每个格子里要么有一个目标,要么没有。 Shel 只有一把幸运的猎枪,他可以向四个方向之一射击:右下、左下、左上或右上。每次射击时,猎枪会击中所选方向上所有曼哈顿距离不超过固定常数 $k$ 的目标。两点 $(x_1, y_1)$ 和 $(x_2, y_2)$ 之间的曼哈顿距离定义为 $|x_1 - x_2| + |y_1 - y_2|$。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1921G/07ae9ceed185244b94a445086f5cae84fbf84168.png) $k = 3$ 时可能的击中区域。 Shel 的目标是用一次射击击中尽可能多的目标。请你帮他计算这个最大值。

输入格式

每组测试数据包含若干个测试用例。第一行包含一个整数 $t$($1 \le t \le 1000$),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行包含三个整数 $n$、$m$ 和猎枪威力常数 $k$($1 \le n, m, k \le 10^5, 1 \le n \cdot m \le 10^5$)。 接下来的 $n$ 行,每行包含 $m$ 个字符,描述场地的每一行。其中字符 '.' 表示该格为空,字符 '#' 表示该格有目标。 保证所有测试用例中 $n \cdot m$ 的总和不超过 $10^5$。

输出格式

对于每个测试用例,输出一个整数,表示用一次射击最多能击中的目标数,每个结果占一行。

说明/提示

对于题目描述中的样例,可能的最优射击如下图所示: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1921G/027b9a5a762b96357d7642f8eac1d4cf8d7ae93a.png) 由 ChatGPT 4.1 翻译