题解 | #马踏棋盘#

马踏棋盘

https://ac.nowcoder.com/acm/problem/235814

#include<bits/stdc++.h>
#define x first
#define y second
using namespace std;

const int N=20;
int dx[4]={1,1,2,2},dy[4]={2,-2,1,-1};
int n,m,cnt;

void dfs(int x,int y)
{
    //到达终点就方案数+1
   if(x==n&&y==m)
   {
       cnt++;
       return ;
       //出界了就return
   }else if(x>n||x<1||y>m||y<1){
       return ;
   }
    //从(1,1)点开始走,如果出界了,就回溯从刚好没出界的地方继续走
    for(int i=0;i<4;i++)
        dfs(x+dx[i],y+dy[i]);
}

int main()
{
    //输入
    cin>>m>>n;
    //核心
    dfs(1,1);
    //输出
    cout<<cnt;
}
全部评论
原来这个题目说的可以走的第一个位置有点问题,我就说为啥不对
点赞 回复 分享
发布于 2022-10-21 15:12 浙江
烦死了。题目说不能向左走,我开了8个方向。卡了半天。然后输入n,m顺序还反了。
点赞 回复 分享
发布于 2023-08-29 16:06 湖南
为啥要先输入M再输入N呢
点赞 回复 分享
发布于 2023-12-16 20:53 湖南

相关推荐

像好涩一样好学:这公司我也拿过 基本明确周六加班 工资还凑活 另外下次镜头往上点儿
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务