CF2113C.Smilo and Minecraft

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Smilo 在玩 Minecraft!为了准备去打龙,他需要大量的金苹果,所以他需要大量的金子。因此,Smilo 准备下矿。

矿洞是一个 n×mn\times m 的矩形网格,每个格子可能是金矿、石头或空地。Smilo 可以在一个空地点燃炸药,这会将以此空地为中心的边长为 2k+12k+1 的正方形区域夷为平地。如果一个金矿在正方形的内部并且没有和边框相接触,那么它会直接消失;如果金矿在正方形的边框上(在内部并且和正方形的边相接触),Smilo 将会获得这个金子。

求出 Smilo 最多可以获得多少金子。

输入格式

多组数据。第一行一个整数 t(1≤t≤104)t(1\le t\le 10^4) 表示数据组数。

对于每组数据,第一行三个整数 n,m,k(1≤n,m,k≤500)n,m,k(1\le n,m,k\le 500)。
接下来 nn 行,每行一个由 g,# 和 . 构成的长度为 mm 的字符串,表示矿洞。g 表示金矿,# 表示石头,. 表示空格。

保证单个测试点中 ∑nm≤2.5×105\sum nm\le 2.5\times 10^5。

输出格式

对于每组数据,输出一行一个整数表示答案。

输入输出样例

  • 输入#1

    3
    2 3 1
    #.#
    g.g
    2 3 2
    #.#
    g.g
    3 4 2
    .gg.
    g..#
    g##.

    输出#1

    2
    0
    4

说明/提示

样例解释

对于第一组数据,Smilo 可以在任意空地中引爆炸药获得 22 个金子:

对于第二组数据,Smilo 怎么做都不能获得任何金子:

对于第三组数据,Smilo 可以先在左下角的空地中引爆炸药获得 22 个金子,再在左边一个格子引爆炸药获得 22 个金子:

By @chenxi2009

输入解题思路,AI测评打分。不知道怎么写?

首页