看了题解,发现滑坡长度每次+1,修改代码后测评结果不变
```
#include<bits/stdc++.h>
using namespace std;
int f[105][105],h[105][105],n,m,dx[4]={0,-1,0,1},dy[4]={-1,0,1,0},ans=0;
int main()
{
std::ios::sync_with_stdio(false);
std::cin.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>f[i][j];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
for(int k=0;k<=1;k++)
{
int tx=i+dx[k];int ty=j+dy[k];
if(h[tx][ty]>=h[i][j]|tx<1|tx>n|ty<1|ty>m)continue;
f[i][j]=max(f[i][j],f[tx][ty]+1);
}
}
}
for(int i=n;i>=1;i--)
{
for(int j=m;j>=1;j--)
{
for(int k=2;k<=3;k++)
{
int tx=i+dx[k];int ty=j+dy[k];
if(h[tx][ty]>=h[i][j]|tx<1|tx>n|ty<1|ty>m)continue;
f[i][j]=max(f[i][j],f[tx][ty]+1);
}
}
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
ans=max(ans,f[i][j]);
cout<<ans;
}
```
by Main_WF @ 2022-07-10 11:27:57
突然发现盲点!我输入的居然是f[][]
by Main_WF @ 2022-07-10 11:42:57
修改之后样例都过不了了...
```
#include<bits/stdc++.h>
using namespace std;
int f[105][105],h[105][105],n,m,dx[4]={0,-1,0,1},dy[4]={-1,0,1,0},ans=1;
int main()
{
std::ios::sync_with_stdio(false);
std::cin.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>h[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
f[i][j]=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
for(int k=0;k<=1;k++)
{
int tx=i+dx[k];int ty=j+dy[k];
if(h[tx][ty]>=h[i][j]|tx<1|tx>n|ty<1|ty>m)continue;
f[i][j]=max(f[i][j],f[tx][ty]+1);
}
}
}
for(int i=n;i>=1;i--)
{
for(int j=m;j>=1;j--)
{
for(int k=2;k<=3;k++)
{
int tx=i+dx[k];int ty=j+dy[k];
if(h[tx][ty]>=h[i][j]|tx<1|tx>n|ty<1|ty>m)continue;
f[i][j]=max(f[i][j],f[tx][ty]+1);
}
}
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
ans=max(ans,f[i][j]);
cout<<ans;
}
```
by Main_WF @ 2022-07-10 11:53:23