求助大佬
代码在这
Rt
#include<bits/stdc++.h>
using namespace std;
int n,m;
const int dx[]={-1,0,1,0};
const int dy[]={0,-1,0,1};
char f[10005][10005];
int cnt=0;
bool is_in(int x,int y){
return x>=0&&x<n&&y>=0&&y<m;
}
void floodfill(int x,int y){
f[x][y]='.';
for(int i=0;i<4;++i){
int xx=x+dx[i];
int yy=y+dy[i];
if(is_in(xx,yy)&&f[xx][yy]=='#')floodfill(xx,yy);
}
}
void run(){
for(int i=0;i<n;++i){
for(int j=0;j<m;++j){
if(f[i][j]=='#'){
floodfill(i,j);
++cnt;
}
}
}
if(cnt>1)printf("There are %d ships.",cnt);
else printf("Bad placement.");
}
int main(){
scanf("%d %d",&n,&m);
for(int i=0;i<n;++i)
scanf("%s",f[i]);
run();
return 0;
}