题目传送门 上学路线 - 洛谷(链接)
思路
一道很经典的搜索回溯题,和p1605 迷宫等题非常像,直接把代码附上
AC代码
#include<bits/stdc++.h>//万能头文件
using namespace std;
int a,b,n,dx[]={1,0},dy[]={0,1};
int world[21][21],cnt=0,vis[21][21];
void dfs(int x, int y) {
if (x ==b&& y == a) {
cnt++;
return ;
}
for (int i = 0; i < 2; i++) {
int xx = x + dx[i], yy = y + dy[i];
if (xx < 1 || xx > b || yy < 1 || yy > a || vis[xx][yy] || world[xx][yy] == -1)
continue;
vis[xx][yy] = true;
dfs(xx, yy);
vis[xx][yy] = false;
}
}
int main()
{
cin>>a>>b>>n;
while(n--)
{
int c,d;
cin>>c>>d;
world[d][c]=-1;
}
dfs(1,1);
cout<<cnt;
return 0;
}//和迷宫都差不多,搜索回溯的经典框架