0
已解决
刘乐宸
新手天翼
新手天翼
#include<algorithm>
#include<iostream>
#include<string>
#include<cstdio>
#include<cmath>
//#include <windows.h>
using namespace std;
int n,m;
int dir[4][2] = {{2,1},{1,2},{-1,2},{-2,1}};
int vis[10][10];
struct P{
long long a, b;
}p[100];
bool in_bound(long long x, long long y) {
if(x>=0 && x<=n && y>=0 && y<=m) return true;
return false;
}
int cnt = 0;
void dfs(long long x, long long y, long long t) {
p[t].a = x;
p[t].b = y;
if(x==n && y==m) {
cnt ++;
return ;
}
for(long long i=0; i<n; i++) {
long long nx = x + dir[i][0], ny = y + dir[i][1];
if(vis[nx][ny]==0 && in_bound(nx, ny)) {
vis[nx][ny] = 1;
dfs(nx, ny, t+1);
vis[nx][ny] = 0;
}
}
}
int main() {
cin>>n>>m;
dfs(0, 0, 1);
cout << cnt;
return 0;
}
十分。
刘乐宸在2020-04-17 13:14:31追加了内容
豆豆在等你哦~
0
0
0
0
0
李思远
中级守护
中级守护