大佬们我这个为啥样例都过不了
查看原帖
大佬们我这个为啥样例都过不了
579961
JunBuJian楼主2022/2/14 18:37
#include<iostream>

using namespace std;
const int N = 21;
int g[N][N];
int a,b,n,m;
int cnt;
void dfs(int x,int y)
{
    //边界情况
    if(x > a || y > b || g[x][y]) return ;
    
    if(x == a && y == b) {
        cnt ++;
        return;
    }
    
    //两种情况
    //一是走下边,二是走右边
     dfs(x,y + 1);
     
     dfs(x + 1,y);
}

int main()
{
    //a,b为终点
    //n,m为马的点
    cin >> a >> b >> n >> m;
    
    //标记马的控制点
    for(int i = 0;i <= N;i ++)
       for(int j = 0;j <= N;j ++)
       {
           if(abs(i - n) + abs(j - m) == 3 && i != n && j != m)
              g[i][j] = 1;
       }
       
    dfs(0,0);   
    
    cout << cnt;
    
    return 0;
}
2022/2/14 18:37
加载中...