佬们帮菜鸡看看哪有问题!!!感谢!!!
  • 板块P1605 迷宫
  • 楼主马兔up
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/2/15 22:39
  • 上次更新2023/10/24 00:41:01
查看原帖
佬们帮菜鸡看看哪有问题!!!感谢!!!
268893
马兔up楼主2023/2/15 22:39
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <stack>
  
#include <queue
                
#include <string>

int move1[5]={0,1,0,0,-1};
int move2[5]={0,0,1,-1,0};

int map[30][30];//0表示可走,1表示不可走 
int flag[30][30];//0表示没走过,1表示走过 
int ans=0;
int sx,sy,fx,fy;
int n,m,t;
using namespace std; 
void dfs(int x,int y){
	if(x==fx&&y==fy)
	{
		ans ++;
		return ;
	}
	else {
		for(int i=1;i<=4;i++)
		{
			int tx=x+move1[i];
			int ty=y+move2[i];
			if(tx<=n&&tx>=1&&ty<=m&&ty>=1&&flag[tx][ty]==0&&map[tx][ty]==0)
			{
				flag[tx][ty]=1;
				dfs(tx,ty);
				flag[tx][ty]=0;
			}
		}
	}
}
int main(){
	cin >> n>>m>>t;
	cin >>sx>>sy>>fx>>fy;

	for(int i=1;i<=t;i++)
	{
		int x,y;
		cin >>x>>y;
		map[x][y]=1;
	}
	
	//cout <<n<<m<<t;
	//cout <<sx<<sy<<fx<<fy;
	dfs(sx,sy);
	cout <<ans;
	return 0;
}
2023/2/15 22:39
加载中...