求助20分(#3和#6AC,其余WA)
查看原帖
求助20分(#3和#6AC,其余WA)
529038
Butterfly__qwq楼主2022/1/26 14:42
#include<bits/stdc++.h>
using namespace std;
int n,m,t,ans;
char Map[505][505];
bool vis[1000][1000]={false};
const int dx[]={-1,1,0,0};
const int dy[]={0,0,-1,1};
void dfs(int x,int y)
{
	int newx,newy;
	if(Map[x][y]=='g')return;
	for(int i=0;i<4;i++)
	{
		newx=x+dx[i];
		newy=y+dy[i];
		if(newx<1||newx>n||newy<1||newy>m||Map[newx][newy]=='#'||vis[newx][newy])
		{
			continue;
		}
		vis[newx][newy]=true;
		ans++;
		dfs(newx,newy);
		vis[newx][newy]=false;
	}
}
int main()
{
	int sx,sy,ex,ey,xx,yy;
	cin>>n>>m>>t;
	cin>>sx>>sy>>ex>>ey;
	Map[ex][ey]='g';
	for(int i=0;i<t;i++)
	{
		cin>>xx>>yy;
		Map[xx][yy]='#';
		if(xx==ex&&yy==ey)
		{
			cout<<0;
			return 0;
		}
	}
	vis[sx][sy]=true;
	dfs(sx,sy);
	cout<<ans;
	return 0;
}
2022/1/26 14:42
加载中...