60分哪里错了
  • 板块P1605 迷宫
  • 楼主zhkawe
  • 当前回复4
  • 已保存回复4
  • 发布时间2025/1/21 11:52
  • 上次更新2025/1/21 15:01:04
查看原帖
60分哪里错了
1648010
zhkawe楼主2025/1/21 11:52
#include<bits/stdc++.h>
using namespace std;
int n,m,x4,y4,x5,y5,sum,t;
int s[101][101];
int f[101][101];
int xx[4]={-1,0,1,0},yy[4]={0,-1,0,1};
void search(int x,int y)
{
	for(int i=0;i<=3;i++)
	{
		int newx=x+xx[i];
		int newy=y+yy[i];
		if(newx<=0||newy<=0||newx>n||newy>m)continue;
		if(s[newx][newy]==1)continue;
		if(f[newx][newy]==1)continue;
		f[newx][newy]=1;
		if(newx==x4&&newy==y4)
		{
			sum++;
		}
		else search(newx,newy);
		f[newx][newy]=0;
	}
}
int main()
{
	int x3,y3;
	cin>>n>>m>>t;
	cin>>x3>>y3>>x4>>y4;
	for(int i=1;i<=t;i++)
	{
		cin>>x5>>y5;
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(i!=x5||j!=y5)s[i][j]=0;
			else s[i][j]=1;
		}
	}
	f[x3][y3]=1;
	search(x3,y3);
	cout<<sum;
	return 0;
}

2025/1/21 11:52
加载中...