pts80, WA on #1 #10, 求调
查看原帖
pts80, WA on #1 #10, 求调
984551
SingKwenCat楼主2024/10/12 17:45
#include <iostream>
#include <algorithm>

#define IOS std::ios::sync_with_stdio(false); std::cin.tie(nullptr);
#define endl "\n"

using namespace std;

constexpr const int N = 105;

long long a[N][N], mem[N][N], vis[N][N];
long long n, m, minx, miny, mini = 0x3f3f3f3f3f3f;

long long dfs(int x, int y) {
  if (mem[x][y]) return mem[x][y];
  if (vis[x][y]) return -1;
  vis[x][y] = 1;
  long long ans = 0;
  if (x-1>=0 && a[x-1][y] > a[x][y]) ans = max(ans, dfs(x-1, y));
  if (x+1< n && a[x+1][y] > a[x][y]) ans = max(ans, dfs(x+1, y));
  if (y-1>=0 && a[x][y-1] > a[x][y]) ans = max(ans, dfs(x, y-1));
  if (y+1< m && a[x][y+1] > a[x][y]) ans = max(ans, dfs(x, y+1));
  ans += 1;
  mem[x][y] = ans, vis[x][y] = 0;
  return ans;
}

int main() {
  IOS
  cin >> n >> m;
  for (int i = 0; i < n; ++i) for (int j = 0; j < m; ++j) {
	  cin >> a[i][j];
	  if (a[i][j] < mini) mini = a[i][j], minx = i, miny = j;
  }
  cout << dfs(minx, miny) << endl;
  return 0;
}
2024/10/12 17:45
加载中...