2 条题解

  • 1
    @ 2026-10-20 20:58:33

    这边结合了search呢,还有DP,其实可以直接用DFS写,下辈子马上写。

    #include <bits/stdc++.h>
    using namespace std;
    long long dp[25][25];
    bool ban[25][25];
    int dx[8]={-1,-1,-2,-2,1,1,2,2};
    int dy[8]={2,-2,1,-1,2,-2,1,-1};
    int main() {
        int n,m,cx,cy;
        cin>>n>>m>>cx>>cy;
        ban[cx][cy]=1;
        for(int i=0;i<8;i++){
            int nx=cx+dx[i];
            int ny=cy+dy[i];
            if(nx>=0&&nx<=n&&ny>=0&&ny<=m) ban[nx][ny]=1;
        }
        dp[0][0]=1;
        for(int i=0;i<=n;i++){
            for(int j=0;j<=m;j++){
                if(ban[i][j]) continue;
                if(i>0) dp[i][j]+=dp[i-1][j];
                if(j>0) dp[i][j]+=dp[i][j-1];
            }
        }
        cout<<dp[n][m];
        return 0;
    }
    

    信息

    ID
    392
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    (无)
    递交数
    26
    已通过
    9
    上传者