这也是老师写的
2024-08-28 19:26:05
发布于:浙江
19阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
long long dp[25][25],n,m,x,y;
bool vis[25][25] ; // 标记哪些地点马可以走到,避开这些地点
int dir[8][2]=
{
{2,1},
{2,-1},
{-2,1},
{-2,-1},
{1,2},
{1,-2},
{-1,2},
{-1,-2},
};
bool check(int x,int y){
return x >= 0 && x <= n && y >= 0 && y <= m;
}
int main()
{
// 输入地图大小和🐎的坐标
cin >> n >> m >> x >> y;
// 标记马能够到达的所有地点
vis[x][y] = true;
for(int i = 0 ; i < 8 ; i ++ ) // 标记马能够到达的地点
{
int tx = x + dir[i][0] ;
int ty = y + dir[i][1];
if(check(tx,ty)){
vis[tx][ty] = true;
}
}
for(int i = 0 ; i <= n ; i ++ )
{
for(int j = 0 ; j <= m ; j ++ )
{
if(vis[i][j])continue; // 马可以走到 不走这
if(i == 0 && j == 0)
{
dp[i][j] = 1; // 从起点开始固定有一种方法
}
else dp[i][j] = dp[i-1][j] + dp[i][j-1];
}
}
cout << dp[n][m] << endl;
return 0;
}
这里空空如也
有帮助,赞一个