洛谷P1605 迷宫
题目链接:https://www.luogu.com.cn/problem/P1605
比较经典的搜索题,其实题目不难,在某一程度上算是搜索题的模板,
需要注意的是在区分障碍物的处理方式;
注意事项和代码如下:
1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m,t; 4 int ans; 5 int sx,sy,fx,fy; 6 int l,r; 7 bool vis[10][10];//标记数组 8 int a[10][10]; 9 int dirx[4]={-1,0,1,0};//搜横 10 int diry[4]={0,-1,0,1};//搜纵 11 #define CHECK(x,y)(x>=0&&x<=n&&y>=0&&y<=m) 12 void dfs(int x,int y) 13 { 14 if(x==fx&&y==fy) 15 { 16 ans++; 17 return ; 18 } 19 for(int i=0;i<4;i++) 20 { 21 int newx=x+dirx[i]; 22 int newy=y+diry[i]; 23 if(CHECK(newx,newy)&&vis[newx][newy]==0&&a[newx][newy]==1) 24 { 25 vis[x][y]=1;//标记 26 dfs(newx,newy); 27 vis[x][y]=0;//回溯 28 } 29 } 30 } 31 int main() 32 { 33 ios::sync_with_stdio(false); 34 cin>>n>>m>>t; 35 cin>>sx>>sy>>fx>>fy; 36 for(int i=1;i<=n;i++) 37 { 38 for(int j=1;j<=m;j++) 39 { 40 a[i][j]=1;//为了区分障碍物,将所有坐标先赋1 41 } 42 } 43 for(int i=1;i<=t;i++) 44 { 45 cin>>l>>r;//障碍物 46 a[l][r]=0;//赋0 47 } 48 dfs(sx,sy); 49 cout<<ans<<endl; 50 return 0; 51 }
本文来自博客园,作者:江上舟摇,转载请注明原文链接:https://www.cnblogs.com/LQS-blog/p/15997346.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】