| 比赛 |
初一开训小练习 |
评测结果 |
EEEWEAEEET |
| 题目名称 |
最长滑坡 |
最终得分 |
10 |
| 用户昵称 |
llbc1234 |
运行时间 |
4.870 s |
| 代码语言 |
C++ |
内存使用 |
3.48 MiB |
| 提交时间 |
2026-03-10 20:42:44 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int b[111][111],maxx=INT_MIN;
int n,m,a[111][111];
int dp(int i,int j){
if(b[i][j]>1){
return b[i][j];
}
int c=0;
if(a[i][j]>a[i][j-1]){
c=max(c,dp(i,j-1));
}
if(a[i][j]>a[i-1][j]){
c=max(c,dp(i-1,j));
}
if(a[i][j]>a[i+1][j]){
c=max(c,dp(i+1,j));
}
if(a[i][j]>a[i][j+1]){
c=max(c,dp(i,j+1));
}
b[i][j]+=c;
return b[i][j];
}
int main(){
freopen("shunzhi.out","w",stdout);
freopen("shunzhi.in","r",stdin);
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
b[i][j]=1;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
maxx=max(dp(i,j),maxx);
}
}
cout<<maxx;
}