https://www.luogu.org/problem/show?pid=1605
就很实在的深搜 我就是模拟的地图搜索 没想到竟然1A了 给了我很大的信心
#include<bits/stdc++.h> using namespace std; int n,m; int T; int sx,sy,ex,ey; char s[10][10]; //地图 int sum; int vis[10][10];//询问次数 int fx[]={-1,0,0,1}; int fy[]={0,-1,1,0}; bool check(int x,int y) { if(x>=1 && y>=1 && x<=n && y<=m && s[x][y]!='#' && vis[x][y]==0) { return 1; } return 0; } int dfs(int x,int y) { if(s[x][y] == '#') return 0; if(x==ex && ey == y ) { sum++; } vis[x][y] = 1; for(int i=0;i<4;i++) { int dx = x+ fx[i], dy = y+fy[i]; if(check(dx,dy)) dfs(dx,dy); } vis[x][y] = 0; } int main() { scanf("%d %d %d",&n,&m,&T); scanf("%d %d %d %d",&sx,&sy,&ex,&ey); for(int i=1;i<=T;i++) { int x,y; scanf("%d %d",&x,&y); s[x][y] = '#'; } dfs(sx,sy); cout<<sum<<endl; }
本文介绍了一个使用深度优先搜索(DFS)算法来计算从起点到终点所有可能路径数量的方法。通过模拟地图搜索的过程,成功实现了对指定迷宫地图中所有有效路径的计数。
457

被折叠的 条评论
为什么被折叠?



