[计蒜客(蓝桥杯省赛)]马踏过河卒 原创
题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛)
算法标签 冒泡排序
题目

提示

思路
先标记马的预备位与自身位置不可走。
 卒子当前的路径数=[i-1][j]的路径数+[i][j-1]的路径数
题目代码
#include<iostream>
using namespace std;
const int N=30;
typedef long long LL;
LL map[N][N];
bool st[N][N];
int dir[8][2]={{1,-2},{2,-1},{2,1},{1,2},{-1,2},{-2,1},{-2,-1},{-1,-2}};//马的偏移量
int main()
{
  int n,m,cx,cy;
  cin>>n>>m>>cx>>cy;
  
  st[cx][cy]=true;//马起点
  for(int i=0;i<8;i++)st[cx+dir[i][0]][cy+dir[i][1]]=true;//马可到的位置
  
  
  map[0][0]=1;//出发点 预填为1
  for(int i=0;i<=n;i++)
    for(int j=0;j<=m;j++)
      if(i||j)if(!st[i][j])map[i][j]=map[i-1][j]+map[i][j-1];//不过边界 不过马
  
  cout<<map[n][m];
}
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号