求助!这道题如何解

Description

高太尉率兵攻打梁山失利后,总结失败经验,发现失利原因是官军晕船不善水战,于是命人打造海鳅大船,并将船与船用铁索相连,加强稳定性,再次攻打梁山。梁山好汉听说后,决定不能力敌只能智取。好汉们发现船与船有铁索相连,便决定使用火炮攻击。神炮手凌振善制火炮,并且百发百中,但梁山火炮有限,所以应尽量打“扎堆”的地方。

把梁山水泊看成是M*N的矩阵。官军的海鳅大船无规则的分布在矩阵中,炮弹打中某船后,该船起火,起火的船的火势会蔓延到四周的船上(上下左右的船),下面给出一些询问(炮弹的落点),你需要回答本次打击能够烧毁船只的数量。下图中的例子中,梁山水泊是5*6的矩阵,矩阵中,0表示此处无船,1表示有船,如果炮弹打中(01)、(11)、(12)、(13)中的任意一个位置,将烧毁这4艘船(蔓延);如果炮弹打中(15)将烧毁1艘船;如果炮弹打中(24)、(34)、(44)、(54)、(35)、(26)、(36)、(46)、(56)、中的任意一个位置,将烧毁这9艘船;打中其他位置烧毁0艘船。

标号

0

1

2

3

4

5

6

0

0

1

0

0

0

0

0

1

0

1

1

1

0

1

0

2

0

0

0

0

1

0

1

3

0

0

0

0

1

1

1

4

0

0

0

0

1

0

1

5

0

0

0

0

1

0

1



Input

输入数据的第一行是整数K,表示后面有K组测试数据,每组测试数据的第一行有MNI三个整数,MN表示矩阵的行列数(MN<1000),I表示有几个询问。接下来的M行数据是矩阵的数据,再接下来的I行是询问,每个询问是一个坐标。

Output

输出数据每行是一个整数,对应一次询问,表示该次打击能够烧毁船只的数量。打到边界外输出-1。

Sample Input

2
6 7 3
0 1 0 0 0 0 0
0 1 1 1    0 1 0
0 0 0 0    1 0 1
0 0 0 0    1 1 1
0 0 0 0    1 0 1
0 0 0 0    1 0 1
0 1
2 3
100 6
2 3 1
1 0 0
1 1 0
1 0 

Sample Output

4
0
-1
3
#C/C++##笔试题目#
全部评论
广度优先搜索
点赞
送花
回复
分享
发布于 2019-06-26 18:26
dfs
点赞
送花
回复
分享
发布于 2019-06-26 18:32
秋招专场
校招火热招聘中
官网直投

相关推荐

头像
不愿透露姓名的神秘牛友
04-29 12:10
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务