社区讨论
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 条回复,欢迎继续交流。
正在加载回复...