求助(必关)
  • 板块P1331 海战
  • 楼主Danny_chan
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/2/25 13:48
  • 上次更新2024/2/25 16:24:46
查看原帖
求助(必关)
1032960
Danny_chan楼主2024/2/25 13:48

54分# 1 3 5 8 11 wa。请各位大佬帮忙看一下哪出错了 代码:

#include<iostream>
using namespace std;
int x,y;
int f[1010][1010];
char a[1010][1010];
int n,m;
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
int ans;
void dfs(int x1,int y1){
	for(int i=0;i<4;i++){
		int x2=x1+dx[i];
		int y2=y1+dy[i];
		if(x2<=0||x2>n|y2<=0||y2>m) continue;
		if(a[x2][y2]!='#') continue;
		if(f[x2][y2]==1) continue;
		f[x2][y2]=1;
		dfs(x2,y2); 
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(a[i][j]=='#'&&f[i][j]==0){
				dfs(i,j);
				ans++;
			}
		}
	}
	if(ans==0){
		cout<<"Bad placement.";
		return 0;
	} 
	cout<<"There are "<<ans<<" ships.";
	return 0;
} 
2024/2/25 13:48
加载中...