背景:dfs递归实现。
思路:对于每一个@都把和组成一个片区相连的所有@变成*,并计数一次。
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
char map[105][105];
int direction[8][2]={1,0,1,1,1,-1,0,1,0,-1,-1,0,-1,1,-1,-1};
void dfs(int i,int j){
map[i][j]='*';
for(int row=0;row < 8;row++){
if(map[i+direction[row][0]][j+direction[row][1]] == '@'){
dfs(i+direction[row][0],j+direction[row][1]);
}
}
}
int mai......
阅读全文