54分,求助!!!QAQ
  • 板块P1331 海战
  • 楼主IAKIOI66666
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/26 07:20
  • 上次更新2024/5/26 10:12:53
查看原帖
54分,求助!!!QAQ
1343308
IAKIOI66666楼主2024/5/26 07:20
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
#define MAX 1005 

using namespace std;

int n,m,cnt,a[MAX][MAX]; 
int x1[9]={-1,1,0,0},y1[9]={0,0,-1,1};
void dfs(int x,int y){
	for(int i=0;i<=7;i++){
		int x2=x+x1[i],y2=y+y1[i];
		if(x2>n||y2>m||x2<1||y2<1||a[x2][y2]!=0)continue;
		a[x2][y2]=2;dfs(x2,y2);
	}
	return;
}

int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++){
			char c;cin>>c;
			if(c=='#')a[i][j]=0;
			else a[i][j]=1;
		}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++){
			if(a[i][j]==0)a[i][j]=2,cnt++,dfs(i,j);
		}
	if(cnt!=0)cout<<"There are "<<cnt<<" ships."<<endl;
	else cout<<"Bad placement."<<endl;
	return 0;
}
2024/5/26 07:20
加载中...