#include<iostream>
using namespace std;
const int MAXN=1000;
int vis[MAXN][MAXN],mat[MAXN][MAXN];
void dfs(int i,int j){
if(vis[i][j]||!mat[i][j])return;
vis[i][j]=1;
dfs(i-1,j-1);dfs(i-1,j);dfs(i-1,j+1);
dfs(i,j-1);dfs(i,j+1);
dfs(i+1,j-1);dfs(i+1,j);dfs(i+1,j+1);
}
int main(){
int n;
cin>>n;
memset(vis,0,sizeof(vis));
memset(mat,0,sizeof(mat));
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j){
cin>>mat[i][j];
}
}
int countn=0;
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j){
if(!vis[i][j]&&mat[i][j]){
countn++;
dfs(i,j);
}
}
}
cout<<countn<<endl;
return 0;
}
小白6.4.1
最新推荐文章于 2023-10-21 14:26:11 发布