信奥一本通红与黑求助!!!
  • 板块题目总版
  • 楼主zhuoheng
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/8/2 13:12
  • 上次更新2023/11/3 06:22:56
查看原帖
信奥一本通红与黑求助!!!
1023698
zhuoheng楼主2023/8/2 13:12

代码如下:

#include<bits/stdc++.h>
using namespace std; 
int n,m,dy[4]={0,0,1,-1},dx[4]={1,-1,0,0},ans=1;
char z[110][110];
int vis[110][110];
int sx,sy;
struct point{
	int x;
	int y;
};
queue<point>q; 
int bfs(int x,int y){
	point tmp;
	tmp.x=x;
	tmp.y=y;
	q.push(tmp);
	while(!q.empty()){
		tmp=q.front();
		q.pop();
		for(int i=0;i<4;i++){
			point np=tmp;
			np.x+=dx[i];
			np.y+=dy[i];
			if(np.x>=0&&np.x<=n&&np.y>=0&&np.y<=m&&!vis[np.x][np.y]&&z[np.x][np.y]!='#'){
				vis[np.x][np.y]=1;
				q.push(np);
				ans++;
			}
		}
	}
	return ans;
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++){
			cin>>z[i][j];
			if(z[i][j]=='@')sx=i,sy=j;
		}
	vis[sx][sy]=1;
	cout<<bfs(sx,sy)<<endl;
	return 0;
}

各位大佬调一下,谢谢!!!

2023/8/2 13:12
加载中...