这题用dfs一直遍历 直到遇到障碍停止 到达终点ans++
代码
#include<bits/stdc++.h>
using namespace std;
int s[50][50];
int a,b,x,y;
int ans=0;
void dfs(int c,int d)
{
if(c==a && d==b)
{
ans++;
return;
}
if(s[c][d+1]==1) //如果向上走的路为1 可以走
{
dfs(c,d+1);
}
if(s[c+1][d]==1) //如果向右走的路为1 可以走
{
dfs(c+1,d);
}
}
int main()
{
int n;
cin>>a>>b;
cin>>n;
for(int i=1;i<=a;i++)
{
for(int j=1;j<=b;j++)
{
s[i][j]=1; //将所有路口标记为1
}
}
for(int i=1;i<=n;i++)
{
cin>>x>>y;
s[x][y]=0; //将在维修的路口标记为0
}
dfs(1,1);
cout<<ans;
return 0;
}