qz!!floodfill 64pts
  • 板块P1331 海战
  • 楼主ZJLmath
  • 当前回复12
  • 已保存回复12
  • 发布时间2023/2/9 19:26
  • 上次更新2023/10/24 01:18:32
查看原帖
qz!!floodfill 64pts
764672
ZJLmath楼主2023/2/9 19:26
#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 a[10005][10005];
int ans=0; 
bool is_in(int x,int y){
	return x>=0&&x<n&&y>=0&&y<m;
}
void f(int x,int y){
	a[x][y]='.';
	for(int i=0;i<4;++i){
		int xx=x+dx[i];
		int yy=y+dy[i];
		if(is_in(xx,yy)&&a[xx][yy]=='#'){
			f(xx,yy);
		}
	}
}
void init(){
	cin>>n>>m;
	for(int i=0;i<n;++i){
		cin>>a[i];
	}
}
void run(){
	for(int i=0;i<n;++i){
		for(int j=0;j<m;++j){
			if(a[i][j]=='#'){
				f(i,j);
				++ans;
			}
		} 
	}
}
void print(){
	if(ans>1){
		cout<<"There are "<<ans<<" ships.\n"; 
	}
	else{
		cout<<"Bad placement.\n";
	}
}
int main(){
	init();
	run();
	print();
	return 0;
} 
2023/2/9 19:26
加载中...