P1434 [SHOI2002] 滑雪 - 洛谷
代码区:
#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;const int MAX = 105;
int r, c;
int arr[MAX][MAX], dp[MAX][MAX];
int xindex[4] = {-1,1,0,0};//上下左右
int yindex[4] = {0,0,-1,1};
int dfs(int x,int y) {if (dp[x][y]!=0) {return dp[x][y];}dp[x][y] = 1;for (int q = 0; q < 4; q++) {int newx = x + xindex[q];int newy = y + yindex[q];if (newx >=0 && newx<r && newy>=0 &&newy<c && arr[newx][newy]<arr[x][y]) {dp[x][y] = max(dp[x][y], dfs(newx, newy) + 1);}}return dp[x][y];
}
int main() {int ans = 0;cin >> r >> c;for (int i = 0; i < r; i++) {for (int j = 0; j < c; j++) {cin >> arr[i][j];}}memset(dp, 0, sizeof(dp));for (int i = 0; i < r; i++) {for (int j = 0; j < c; j++) {ans = max(ans, dfs(i,j));}}cout << ans;return 0;
}
欢迎各位读者提出意见。
(菜菜奋斗小日记)