60分,问一下这个哪儿错了
  • 板块P1605 迷宫
  • 楼主dfxgbm
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/1/20 15:29
  • 上次更新2023/11/5 04:38:17
查看原帖
60分,问一下这个哪儿错了
468029
dfxgbm楼主2021/1/20 15:29
#include <cstdio>
#include <algorithm>
#define M 6
using namespace std;
bool vis[M][M]={false},za[M][M]={false}; //za代表障碍
int n,m,cnt=0,fx,fy;
void solve(int x,int y){
    if(vis[x][y])
        return;
    if(x==fx&&y==fy){
        cnt++;
        return;
    }
    vis[x][y]=true;
    if(y<fy&&!za[x][y+1])
        solve(x,y+1);
    if(y>1&&!za[x][y-1])
        solve(x,y-1);
    if(x>1&&!za[x-1][y])
        solve(x-1,y);
    if(x<fx&&!za[x+1][y])
        solve(x+1,y);
    vis[x][y]=false;
}

int main(){
    int i,t,r,c;
    int stx,sty;
    scanf("%d%d%d",&n,&m,&t);
    scanf("%d%d%d%d",&stx,&sty,&fx,&fy);
    for(i=1;i<=t;i++){
        scanf("%d%d",&r,&c);
        za[r][c]=true;
    }
    solve(stx,sty);
    printf("%d",cnt);
    return 0;
}
2021/1/20 15:29
加载中...