社区讨论

60分,问一下这个哪儿错了

P1605迷宫参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@locpw7cw
此快照首次捕获于
2023/10/30 17:48
2 年前
此快照最后确认于
2023/11/05 04:38
2 年前
查看原帖
CPP
#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;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...