#include <stdio.h>
#include <string.h>
int vis[101][101], m, n;
int b1[4] = { 1, 0, -1, 0 };
int b2[4] = { 0, 1, 0, -1 };//控制上下左右寻找的
void dfs(int i, int j)
{
int t;
vis[i][j] = 0;
for (t = 0; t<4; t++)
{
if (vis[i + b1[t]][j + b2[t]])
dfs(i + b1[t], j + b2[t]);
}
}
int main()
{
int i, j, k, T;
int cnt;
scanf("%d", &T);
while (T--)
{
cnt = 0;
scanf("%d%d", &n, &m);
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
scanf("%d", &vis[i][j]);
for (i = 1; i <= n; i++)
{
for (j = 1; j <= m; j++)
if (vis[i][j])//1为水池
{
cnt++;
dfs(i, j);
}
}
printf("%d\n", cnt);
}
return 0;
}
南阳理工27题水池数目
最新推荐文章于 2021-12-09 23:11:50 发布