60求救大佬
查看原帖
60求救大佬
1270241
LKSMlksm楼主2024/10/13 22:43
#include <iostream>
using namespace std;
int main()
{
    int a1,b1,a2,b2;
    cin>>a1>>b1>>a2>>b2;
    long long maps[a1+1][b1+1];
    for(int i=0;i<=a1;i++){
        for(int j=0;j<=b1;j++){
            maps[i][j]=0;
        }
    }
    for(int i=0;i<a1+1;i++)
        maps[i][0]=1;
    for(int i=0;i<b1+1;i++)
        maps[0][i]=1;
    if(a2<=a1-2&&b2<=b1-1)
        maps[a2+2][b2+1]=-1;
    if(a2<=a1-1&&b2<=b1-2)
        maps[a2+1][b2+2]=-1;
    if(a2>=1&&a2<=a1+1&&b2<=b1-2)
        maps[a2-1][b2+2]=-1;
    if(a2>=2&&a2<=a1+2&&b2<=b1-1)
        maps[a2-2][b2+1]=-1;
    if(a2>=2&&a2<=a1+2&&b2>=1&&b2<=b1+1)
        maps[a2-2][b2-1]=-1;
    if(a2>=1&&a2<=a1+1&&b2>=2&&b2<=b1+2)
        maps[a2-1][b2-2]=-1;
    if(a2<=a1-1&&b2>=2&&b2<=b1+2)
        maps[a2+1][b2-2]=-1;
    if(a2<=a1-2&&b2>=1&&b2<=b1+1)
        maps[a2+2][b2-1]=-1;
    maps[a2][b2]=-1;
    for(int i=1;i<=a1;i++){
        for(int j=1;j<=b1;j++){
            if(maps[i][j]==-1||(maps[i][j-1]==-1&&maps[i-1][j]==-1)) continue;
            else if(maps[i][j-1]==-1){
                maps[i][j]=maps[i-1][j];continue;}
            else if(maps[i-1][j]==-1){
                maps[i][j]=maps[i][j-1];continue;}
            maps[i][j]=maps[i][j-1]+maps[i-1][j];
        }
    }
    cout<<maps[a1][b1];
    return 0;
}
2024/10/13 22:43
加载中...