♻️lzhh_lzhh32 • 3个月前
#include<bits/stdc++.h>
using namespace std;
int a[305][305];
int ans;
int n,m;
void find(int i,int j) {
if(i<0||j<0||i>=n||j>=m){
return;
}
if(a[i][j]==0){
return;
} //是水,返回
a[i][j] = 0;
find(i + 1, j);
find(i, j + 1);
find(i - 1, j);
find(i, j - 1);
//遍历上下左右四块是否为水
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
if (a[i][j]==1) {
ans++;
find(i,j);
}
}
}
cout<<ans<<endl;
return 0;
}
评论:
请先登录,才能进行评论