我感觉思路没问题啊
查看原帖
我感觉思路没问题啊
942118
Minecraft_Sep楼主2024/1/20 06:55
#include<bits/stdc++.h>
using namespace std;
int n,m,dx[4]={-1,1,0,0},dy[4]={0,0,-1,1};
int a[100][100];//保存地图,枚举方向 
int sum,q[10000][4],h,t;//模拟BFS的数组 
char b;
void fun(int x,int y)
{
	h=1,t=1;
	q[h][1]=x;
	q[h][2]=y;//初始化 
	while(h<=t)//队列不为空 
	{
		for(int i=0;i<4;i++)//枚举方向 
		{
			int xx=q[h][1]+dx[i];
			int yy=q[h][2]+dy[i];
			if(xx>=1&&xx<=n&&yy>=1&&yy<=m)//如果满足移动条件 
			{
				t++; 
				q[t][1]=xx;
				q[t][2]=yy;
				if(a[xx][yy]==0)
				{
					if(a[xx-1][yy]==1&&a[xx][yy-1]==1&&a[xx+1][yy]==1&&a[xx][yy+1]==1){
						
						sum++;
					}
					
				}
			}
		}
		h++;//继续循环,head++ 
	}
}
signed main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++){
			std::cin>>b;
			if(b=='*') a[i][j]=1;
		}
	}
	fun(i,j);
	cout<<sum;
	return 0;
}

全WA

有问题尽管提出来

(玄关)

2024/1/20 06:55
加载中...