90pts 求助
  • 板块P1605 迷宫
  • 楼主高启凯
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/3/19 00:10
  • 上次更新2024/3/19 14:45:53
查看原帖
90pts 求助
736701
高启凯楼主2024/3/19 00:10

#7 过不了

#include<iostream>
using namespace std;
int startx,starty,endx,endy;
bool ma[6][6],map[6][6];
int ans=0;
int n,m,t;
int dx[6]={0, 0, 0, 1,-1};
int dy[6]={0, 1,-1, 0, 0};
void dfs(int x,int y){
//	cout<<"("<<x<<" "<<y<<") ";
	
	if(x==endx&&y==endy)	{ans++;/*cout<<"/ ";*/return;}
	
	for(int i=1;i<=4;i++){
		int nx=x+dx[i],ny=y+dy[i];
		if(nx<=n&&nx>=1&&ny<=m&&ny>=1&&!map[nx][ny]&&!ma[nx][ny]){
			map[nx][ny]=1;
			dfs(nx,ny);
			map[nx][ny]=0;
		}
	}
}
int main(){
	map[1][1]=1;
    cin>>n>>m>>t;
    cin>>startx>>starty>>endx>>endy;
    for(int i=1;i<=t;i++){
        int a,b;
        cin>>a>>b;
        ma[a][b]=1;
    }
    map[startx][starty]=1;
    dfs(startx,starty);
    cout<<ans;
}
2024/3/19 00:10
加载中...