80,WAon#1#10
  • 板块P1683 入门
  • 楼主fried_chicken
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/11/11 12:40
  • 上次更新2023/11/11 14:54:00
查看原帖
80,WAon#1#10
673342
fried_chicken楼主2023/11/11 12:40
#include<bits/stdc++.h>
using namespace std;

#define _rep(a,b,s) for(int i=a;i<=b;i+=s)
#define mem(a,num) memset(a,num,sizeof(a))
#define __rep(a) for(int i=1;i<=a;i++)
int dx[] = {0,1,0,-1};
int dy[] = {1,0,-1,0};
int w,h,ans=1; 
bool vis[1001][1001];char mp[1001][1001];
void dfs(int x,int y){
	_rep(0,4,1){
		int xx=x+dx[i],yy=y+dy[i];
		if(xx<=h&&xx>=0&&yy>=0&&yy<=w&&vis[xx][yy]&&mp[xx][yy]=='.'){
			vis[xx][yy]=false;
			ans++;
			dfs(xx,yy); 
		}
	}
	
}
int main(){
	//file("");
	mem(vis,true);
	cin>>w>>h;
	int st,en;
	__rep(h){
		for(int j=1;j<=w;j++){
			cin>>mp[i][j];
			if(mp[i][j]=='@') st=i,en=j;
			if(mp[i][j]=='#') vis[i][j]=false;
		}
	}vis[st][en]=false;
	dfs(st,en);
	cout<<ans;
	return 0;
}

2023/11/11 12:40
加载中...