#2#6#9#10MLE 求调 疑似爆栈
查看原帖
#2#6#9#10MLE 求调 疑似爆栈
527979
___wangjiahang___楼主2024/7/26 15:59
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,i,j,fx[4]={0,-1,1,0},fy[4]={-1,0,0,1},ans;
bool f[1010][1010];
char ch;
void dfs(ll x,ll y){
	f[i][j]=0;
	for(ll i=0;i<4;i++)
		if(x+fx[i]>0&&x+fx[i]<=n&&y+fy[i]>0&&y+fy[i]<=m&&f[x+fx[i]][y+fy[i]]==1)
		    dfs(x+fx[i],y+fy[i]);
}
int main(){
	cin>>n>>m;
	for(i=1;i<=n;i++){
		for(j=1;j<=m;j++){
			cin>>ch;
			f[i][j]=(ch=='#');
		}
	}
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			if(f[i][j]+f[i+1][j]+f[i+1][j+1]+f[i][j+1]==3){
				cout<<"Bad placement.";
				return 0;
			}
		}
	}
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
		    if(f[i][j])dfs(i,j),ans++;
	cout<<"There are "<<ans<<" ships.";
	return 0;
}
2024/7/26 15:59
加载中...