NC235814. 马踏棋盘
描述
输入描述
一行,两个整数,表示棋盘的大小。
输出描述
输出一行一个整数,表示马从左下角到右上角的不同路径数。
示例1
输入:
4 5
输出:
1
C++(g++ 7.5.0) 解法, 执行用时: 3ms, 内存消耗: 436K, 提交时间: 2023-07-06 16:30:40
#include<bits/stdc++.h> using namespace std; int n,m,cnt=0; int dx[5]={0,1,1,2,2},dy[5]={0,2,-2,1,-1}; void dfs(int x,int y) { if(x==n&&y==m) { cnt++; return; }else if(x<1||x>n||y>m||y<1) return; for(int i=1;i<=4;i++) { dfs(x+dx[i],y+dy[i]); } } int main() { cin>>m>>n; dfs(1,1); cout<<cnt<<endl; return 0; }
C++(clang++ 11.0.1) 解法, 执行用时: 3ms, 内存消耗: 396K, 提交时间: 2023-02-14 15:43:48
#include<iostream> using namespace std; int n,m; int f(int x,int y){ int res=0; if(x<1||x>m||y<1||y>n) return 0; if(x==m&&y==n) return 1; res=res+f(x+1,y+2)+f(x+1,y-2)+f(x+2,y+1)+f(x+2,y-1); return res; } int main(){ cin>>n>>m; cout<<f(1,1)<<endl; return 0; }