CF2113C.Smilo and Minecraft
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Smilo 在玩 Minecraft!为了准备去打龙,他需要大量的金苹果,所以他需要大量的金子。因此,Smilo 准备下矿。
矿洞是一个 n×m 的矩形网格,每个格子可能是金矿、石头或空地。Smilo 可以在一个空地点燃炸药,这会将以此空地为中心的边长为 2k+1 的正方形区域夷为平地。如果一个金矿在正方形的内部并且没有和边框相接触,那么它会直接消失;如果金矿在正方形的边框上(在内部并且和正方形的边相接触),Smilo 将会获得这个金子。
求出 Smilo 最多可以获得多少金子。
输入格式
多组数据。第一行一个整数 t(1≤t≤104) 表示数据组数。
对于每组数据,第一行三个整数 n,m,k(1≤n,m,k≤500)。
接下来 n 行,每行一个由 g,# 和 . 构成的长度为 m 的字符串,表示矿洞。g 表示金矿,# 表示石头,. 表示空格。
保证单个测试点中 ∑nm≤2.5×105。
输出格式
对于每组数据,输出一行一个整数表示答案。
输入输出样例
输入#1
3 2 3 1 #.# g.g 2 3 2 #.# g.g 3 4 2 .gg. g..# g##.
输出#1
2 0 4
说明/提示
样例解释
对于第一组数据,Smilo 可以在任意空地中引爆炸药获得 2 个金子:

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

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

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