有人和我一样dfs的吗?
2024-04-26 22:48:11
发布于:浙江
4阅读
0回复
0点赞
dfs 伪深搜做法
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,sum;
int mp[105][105];
char a[105][105];
int dir_x[15]={-1,1,0,0,-1,1,1,-1};
int dir_y[15]={0,0,-1,1,-1,1,-1,1};
void dfs(int i,int j)
{
sum=0;
for(int k=0;k<9;k++)
{
int x=i+dir_x[k];int y=j+dir_y[k];
if(x>=1 and x<=n and y>=1 and y<=m)
{
if(mp[x][y]!=1)
{
sum++;
}
}
}
}
signed main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
if(a[i][j]=='*')
mp[i][j]=0;
else
mp[i][j]=1;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(mp[i][j]==0)
{
cout<<"*";
continue;
}
else
{
dfs(i,j);//dfs!
cout<<sum;
}
}
cout<<endl;
}
return 0;
}
这里空空如也
有帮助,赞一个