我的搜索题第一次

迷宫 - 洛谷

输出格式

输出从起点坐标到终点坐标的方案总数。

输入输出样例

输入 #1复制

2 2 1
1 1 2 2
1 2

输出 #1复制

1
#include
using namespace std;
#define int long long
int n,m,t,p,q,x1,y1,e1,e2,ans;
int map[6][6];
int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1};//这个数组是从0开始的,差点忘了,还搞了我一个多小时真服了 
bool vis[6][6];
void bfs(int x,int y,int step){
	if(x==x1&&y==y1)
	{
		ans++;
		return ;
	}
	for(int i=0;i<=3;i++){
		int xx,yy;
			xx=dx[i]+x,yy=dy[i]+y;
			if(map[xx][yy]==1||xx<1||yy<1||xx>n||yy>m||vis[x][y])continue;
			vis[x][y]=1;
			bfs(xx,yy,step+1);//continue sousuo
			vis[x][y]=0;
	}
	//if(x!=x1||y!=y1)
}
signed main(){
	std::ios::sync_with_stdio;
	cin.tie(0);cin.tie(0);
	cin>>n>>m>>t;
	cin>>p>>q>>x1>>y1;
	for(int i=1;i<=t;i++){
		cin>>e1>>e2;
		map[e1][e2]=1;
	}
	bfs(p,q,0);
	cout<

你可能感兴趣的:(学习日常,算法)