到底哪里错了?请各位大佬指导,谢谢了
  • 板块P1331 海战
  • 楼主RainTree
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/9/16 22:01
  • 上次更新2023/10/27 11:23:14
查看原帖
到底哪里错了?请各位大佬指导,谢谢了
530150
RainTree楼主2022/9/16 22:01
#include<iostream>
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<cmath>
#define ll long long
#define cc char
#define ss string
#define dd double
#define ff float
using namespace std;
ll n,m,ans,ant[110][110];
string nm[110];
int dx[4]{1,-1,0,0};
int dy[4]{0,0,1,-1};
void dfs(int idx,int idy)
{
	for(int i=0;i<4;i++)
	{
		int x=idx+dx[i];
		int y=idy+dy[i];
		if(x<0||x>=n||y<0||y>=m)continue;
		if(nm[x][y]=='#'&&ant[x][y]==0)
		{
			ant[x][y]=1;
			dfs(x,y);
		}
	}
 } 
int main()
{
	cin>>n>>m;
	for(int i=0;i<n;i++)cin>>nm[i];
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++)
		{
			if(nm[i][j]=='#'&&ant[i][j]==0)
			{
				ans++;
				ant[i][j]=1;
				dfs(i,j);
			}
		}
	if(ans>0)cout<<"There are "<<ans<<" ships.";
	else cout<<"Bad placement.";
	return 0;
}

2022/9/16 22:01
加载中...