60分求救
查看原帖
60分求救
1453172
dlkaflkhds楼主2024/10/12 11:17
#include<stdio.h>
int main(){
    int m,n,a,b;
    scanf("%d %d %d %d",&m,&n,&a,&b);
    long long c[35][35]={1};
    for(int g=0;g<35;g++){
        for(int h=0;h<35;h++){
            c[g][h]=1;
        }
    }
    c[a][b]=0;
    if(a-1>=0&&b-2>=0){
        c[a-1][b-2]=0;
    }
    if(a>=1&&b+2<=n){
        c[a-1][b+2]=0;
    }
    c[a+1][b+2]=0;
    if(b>=2&&a+1<=m){
        c[a+1][b-2]=0;
    }
    if(a>=2&&b>=1){
        c[a-2][b-1]=0;
    }
    if(a>=2&&b+1<=n){
        c[a-2][b+1]=0;
    }
    if(b>=1&&b+1<=n&&a+2<=m){
        c[a+2][b-1]=0;
    }
    c[a+2][b+1]=0;
    for(int d=1;d<=m;d++){
        if(c[d][0]==0){
            c[d][0]=0;
        } else {
            c[d][0]=c[d-1][0];
        }
    } 
    for(int e=1;e<=n;e++){
        if(c[0][e-1]==0){
            c[0][e]=0;
        } else {
            c[0][e]=c[0][e-1];
        }
    } 
    
    for(int f=1;f<=m;f++){
        for(int g=1;g<=n;g++){
            if(c[f][g]!=0&&c[f-1][g]!=0&&c[f][g-1]!=0){
                c[f][g]=c[f-1][g]+c[f][g-1];
            }
            if(c[f][g]!=0&&c[f-1][g]!=0&&c[f][g-1]==0){
                c[f][g]=c[f-1][g];
            }
            if(c[f][g]!=0&&c[f-1][g]==0&&c[f][g-1]!=0){
                c[f][g]=c[f][g-1];
            }
            if(c[f][g]!=0&&c[f-1][g]==0&&c[f][g-1]==0){
                c[f][g]=0;
            }
        }
    }
    
    printf("%lld",c[m][n]);
}
2024/10/12 11:17
加载中...