求助60分,第三和第四步通不过呢?
查看原帖
求助60分,第三和第四步通不过呢?
718868
yshare楼主2022/4/25 17:10

求助大佬 代码:

#include <iostream>
using namespace std;

float reverseNum(float a);
long long crossTheRiver(int x,int y,int px,int py);
bool checkResult(int x,int y,int px,int py);
long long f[21][21]={};
int main(){

    int x,y,px,py;
    cin >>x>>y>>px>>py;
    int result = crossTheRiver(x,y,px,py);
    cout<<result<<endl;

}

long long crossTheRiver(int x,int y,int px,int py){

    f[1][0]=f[0][1]=1;
    for(int i=0;i<=x;i++){
        for(int j=0;j<=y;j++){
            if(checkResult(i,j,px,py)){
                f[i][j]=0;
            }else {
                if(i==0&&j>1){
                    f[i][j]=f[i][j-1];
                }
                if(j==0&&i>1){
                    f[i][j]=f[i-1][j];
                }
                if(j>=1&&i>=1){
                f[i][j]=f[i][j-1]+f[i-1][j];
                }
            }
        }
    }

    return f[x][y];
}

bool checkResult(int x,int y,int px,int py){
 return ((abs(x-px)+abs(y-py))==3&&abs(x-px)>0&&abs(y-py)>0)||(x==px&&y==py);
}

为啥3和4步通不过呢,答案好像没啥问题

2022/4/25 17:10
加载中...