题解
2023-12-16 14:55:45
发布于:吉林
140阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int X,Y,xx1,yy1;
int a,b,maps[50][50],n[50][50],flag=0,s[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
void bfs(int x,int y){
if(x==xx1&&y==yy1){
flag++;
}
for(int i=0;i<4;i++){
int xx=x+s[i][0];
int yy=y+s[i][1];
if(xx<1||yy<1|xx>a||yy>b)continue;
if(maps[xx][yy])continue;
if(n[xx][yy])continue;
n[xx][yy]=1;
bfs(xx,yy);
n[xx][yy]=0;
}
}
int main(){
int c;
cin>>a>>b>>c;
cin>>X>>Y>>xx1>>yy1;
for(int i=1;i<=c;i++){
int x_,y_;
cin>>x_>>y_;
maps[x_][y_]=1;
}
n[X][Y]=1;
bfs(X,Y);
cout<<flag;
return 0;
}
全部评论 1
对不起,看到bfs的时候真的没绷住
2024-02-07 来自 湖南
0害,套模板写的题,懒得改
2024-02-09 来自 吉林
0
有帮助,赞一个