2 条题解

  • 1
    @ 2026-10-21 10:21:42
    • 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;
      }
      
      • 1

      信息

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