例题6-12 UVA 572 Oil Deposits
程序员文章站
2022-05-28 15:19:04
...
模板题。
#include <bits/stdc++.h>
using namespace std;
int n, m, X[8] = {-1, 0, 1, 1, 1, 0, -1, -1}, Y[8] = {-1, -1, -1, 0, 1, 1, 1, 0};
char matrix[105][105];
void DFS(int x, int y)
{
matrix[x][y] = '*';
for(int i = 0; i < 8; i++){
int tempx = x + X[i], tempy = y + Y[i];
if(matrix[tempx][tempy] == '@') DFS(tempx, tempy);
}
}
int main()
{
while(scanf("%d%d", &n, &m) != EOF){
if(!n && !m) break;
int ans = 0;
for(int i = 0; i < n; i++){
scanf("%s", matrix[i]);
}
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(matrix[i][j] == '@'){
DFS(i, j);
ans++;
}
}
}
printf("%d\n", ans);
}
return 0;
}
上一篇: 微信红包发送问题
下一篇: 例题6-2 UVA 514 Rails