80分求调
查看原帖
80分求调
1066287
gaoshengxi楼主2024/12/17 19:53
#include<bits/stdc++.h>
#define size 22
int map[size][size];
bool control[size][size];
int pos[9][2]={
  {0,0}  ,{-1,2} ,{1,2} ,
  {2,1}  ,{2,-1} ,{1,-2},
  {-1,-2},{-2,-1},{-2,1}
};
int m,n,hx,hy;
int dx,dy;
int i,j;
int main(){
    scanf("%d %d %d %d",&m,&n,&hx,&hy);
    for(i=0;i<9;i++){
        dx=hx+pos[i][0],dy=hy+pos[i][1];
        if(dx>=0&&dy>=0&&dx<=m&&dy<=n)
            control[dx][dy]=1;
    }
    for(i=1;i<=m;i++)
    {
        if(control[i][0])
            break;
        map[i][0]=1;
    }
    for(i=1;i<=n;i++){
        if(control[0][i])
            break;
        map[0][i]=1;
    }
    for(i=1;i<=m;i++)
        for(j=1;j<=n;j++){
            if(!control[i][j])map[i][j]=map[i-1][j]+map[i][j-1];
            else map[i][j]=0;
        }
    printf("%lld",map[m][n]);
    return 0;
}

第三个测试数据错啦

2024/12/17 19:53
加载中...