1 solutions
-
1
本题其实就是一道搜索题,在洛谷有一道基本一样的题
我用的是dfs,具体代码如下:
#include <iostream> using namespace std; const int N=5; int m,n,t,sx,sy,fx,fy,zx,zy,ans; int ma[N][N]; int opx[5]={1,-1,0,0}; int opy[5]={0,0,1,-1}; void dfs(int x,int y) { if(x==fx&&y==fy) ans++;//能走到终点说明有一条路径 else{ int nex,ney; for(int i=0;i<4;i++){ nex=x+opx[i]; ney=y+opy[i]; if(nex>=1&&nex<=n&&ney>=1&&ney<=m&&ma[nex][ney]==0)//保证下一个点不越界,且可通过 { ma[nex][ney]=1; dfs(nex,ney); ma[nex][ney]=0; } } } } int main() { cin>>n>>m>>t; cin>>sx>>sy>>fx>>fy; while(t--) { cin>>zx>>zy; ma[zx][zy]=1;//将障碍点做标记 } ma[sx][sy]=1; dfs(sx,sy); cout<<ans<<endl; return 0; }
Information
- ID
- 6533
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 76
- Accepted
- 27
- Uploaded By