2 条题解

  • 0
    @ 2023-5-26 6:14:19

    👎

    • 0
      @ 2023-5-4 17:32:28
      #include <iostream>
      using namespace std;
      int n, m, a[2018][2018];
      int ans, sum;//非管理测试禁止抄袭
      bool vis[2018][2018];
      void dfs(int x, int y)
      {
          if (x == n + 1)
          {
              ans = max(ans, sum);
              return;
          }
          int nx = x, ny = y + 1;
          if (ny > m)
          {
              ny = 1;
              nx = x + 1;
          }
          if(!vis[x-1][y]&&!vis[x][y-1]&&!vis[x][y+1]&&!vis[x+1][y]){
              vis[x][y]=1;
              sum+=a[x][y];
              dfs(nx,ny);
              vis[x][y]=0;
              sum-=a[x][y];
          }
          dfs(nx, ny);
      }
      //非管理测试禁止抄袭
      int main()
      {
          cin >> n >> m;
          for (int i = 1; i <= n; i++)//非管理测试禁止抄袭
              for (int j = 1; j <= m; j++)
                  cin >> a[i][j];
          dfs(1, 0);//非管理测试禁止抄袭
          cout << ans;
          return 0;
      }
      
      • 1

      信息

      ID
      71
      时间
      1000ms
      内存
      256MiB
      难度
      4
      标签
      递交数
      7
      已通过
      3
      上传者