Discuz! Board

 找回密码
 立即注册
查看: 83|回复: 0

20250510

[复制链接]

660

主题

846

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435557

烈空座 Lv:100
发表于 2025-5-10 14:43:56 | 显示全部楼层 |阅读模式
[C++] 纯文本查看 复制代码
#include <bits/stdc++.h>
using namespace std;

struct cizhuan
{
	int x,y;
}cz[10000];

int main() {
    int W,H,px,py,cnt=1;
    char m[100][100];
    int v[100][100]={0};
    queue<cizhuan> q;
    
    cin>>W>>H;
	for(int i=0;i<H;i++)
	for(int j=0;j<W;j++)
	{
		cin>>m[i][j];
		if(m[i][j]=='@')
		{
			px=i;
			py=j;
		}
	}
	q.push({px,py});
	v[px][py]=1;
	
	int dx[4]={0,0,1,-1};
	int dy[4]={1,-1,0,0};
	while(!q.empty())
	{
		cizhuan h=q.front();
		q.pop();
		
		for(int i=0;i<4;i++)
		{
			int nx=h.x+dx[i];
			int ny=h.y+dy[i];
			if(nx>=0&&ny>=0&&nx<=H&&ny<=W&&v[nx][ny]==0&&m[nx][ny]=='.')
			{
				v[nx][ny]=1;
				q.push({nx,ny});
				cnt++;
			}
		}
	}
	
	cout<<cnt;

    return 0;
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-5-29 04:51 , Processed in 0.059085 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表