Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
Register

## 学渣瞎写的代码 不知道是不是用例太水 反正过了 递归

Posted by 814264306 at 2019-07-05 10:02:54 on Problem 1088
```#include<iostream>
using namespace std;
int r, c;
int map[110][110];
int vis[110][110];
int dr[4][2] = { 1,0,    -1,0,   0,1,   0,-1 };
int dfs(int x,int y) {
if (vis[x][y] != 0) {
return vis[x][y];
}
int temp = 0;
for (int i = 0; i < 4; i++) {
int x0 = x + dr[i][0];
int y0 = y + dr[i][1];
if (x0 > r || x0<1 || y0>c || y0 < 1)continue;
if (map[x0][y0] >= map[x][y])continue;
if (temp < dfs(x0, y0)) {
temp = dfs(x0, y0);
}
}
vis[x][y] = 1 + temp;
return 1 + temp;
}

int main() {
cin >> r >> c;
for (int i = 0; i < 110; i++) {
for (int j = 0; j < 110; j++) {
vis[i][j] = 0;
}
}
//获取地图数据
for (int i = 1; i <= r; i++) {
for (int j = 1; j <= c; j++) {
cin >> map[i][j];
}
}
//开始处理
int ans = -1;
for (int i = 1; i <= r; i++) {
for (int j = 1; j <= c; j++) {
vis[i][j] = dfs(i, j);
if (ans < vis[i][j])ans = vis[i][j];
if (ans == r*c) {
break;
}
}
if (ans == r*c) {
break;
}
}
cout << ans<<endl;
}```

Followed by: