这个DFS出什么问题了?
  • 板块P1331 海战
  • 楼主Chenhy2022
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/1/6 13:06
  • 上次更新2023/10/24 05:24:39
查看原帖
这个DFS出什么问题了?
724677
Chenhy2022楼主2023/1/6 13:06

尽管自认为找不到毛病但它死活不肯去推别的点导致样例都不过的屑

#include<bits/stdc++.h>
using namespace std;
char mp[1001][1001];
int r,c,ans;
void fd(int i,int j)
{
	mp[i][j]='.';
	if(mp[i-1][j]=='#')
		fd(i-1,j);
	if(mp[i+1][j]=='#')
		fd(i-1,j);
	if(mp[i][j-1]=='#')
		fd(i,j-1);
	if(mp[i][j+1]=='#')
		fd(i,j+1);
}
int main()
{
	cin>>r>>c;
	for(int i=1;i<=r;i++)
		for(int j=1;j<=c;j++)
			cin>>mp[i][j];
	for(int i=1;i<=r;i++)
		for(int j=1;j<=c;j++)
			if(mp[i][j]=='#')
				fd(i,j),ans++;
	if(ans)
	cout<<"There are "<<ans<<" ships.";
	else
	cout<<"Bad placement.";
}
2023/1/6 13:06
加载中...