求助3 4WA的原因
查看原帖
求助3 4WA的原因
957284
wrenbutler楼主2023/3/19 23:27

代码如下,记忆化搜索

控制点在边界的情况应该考虑到了

#include <bits/stdc++.h>
#define ll long long
using namespace std;

int x,y,a,b;
ll memo[21][21];

int f(int x,int y,int a,int b){
    if(x<0||y<0)
        return 0;
    if((x==a-1&&y==b-2)||(x==a-1&&y==b+2)||(x==a+1&&y==b+2)||(x==a+1&&y==b-2)||(x==a+2&&y==b-1)||(x==a+2&&y==b+1)||(x==a-2&&y==b-1)||(x==a-2&&y==b+1)||(x==a&&y==b))
        memo[x][y]=0;
    if(memo[x][y]==-1)
        memo[x][y]=f(x-1,y,a,b)+f(x,y-1,a,b);
    if(memo[x][y]!=-1)
        return memo[x][y];
    return memo[x][y];
}

int main(void){
    memset(memo,-1,sizeof(memo));
    memo[0][0]=1;
    cin>>x>>y>>a>>b;
    cout<<f(x,y,a,b);
    return 0;
}
2023/3/19 23:27
加载中...