Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
193903 luckypet 滑雪 C++ 通过 100 0 MS 348 KB 1119 2025-05-27 14:48:08

Tests(5/5):


#include <iostream> #include <vector> #include <algorithm> using namespace std; const int MAX_R = 105; const int MAX_C = 105; int R, C; vector<vector<int>> height(MAX_R, vector<int>(MAX_C)); vector<vector<int>> dp(MAX_R, vector<int>(MAX_C, 0)); int dirs[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}}; int dfs(int i, int j) { if (dp[i][j] != 0) return dp[i][j]; int max_len = 1; for (auto& dir : dirs) { int ni = i + dir[0]; int nj = j + dir[1]; if (ni >= 0 && ni < R && nj >= 0 && nj < C && height[ni][nj] < height[i][j]) { max_len = max(max_len, 1 + dfs(ni, nj)); } } dp[i][j] = max_len; return max_len; } int main() { cin >> R >> C; for (int i = 0; i < R; ++i) { for (int j = 0; j < C; ++j) { cin >> height[i][j]; } } int max_path = 0; for (int i = 0; i < R; ++i) { for (int j = 0; j < C; ++j) { max_path = max(max_path, dfs(i, j)); } } cout << max_path << endl; return 0; }


测评信息: