蒟蒻求助!!!

P1434 [SHOI2002] 滑雪

豊聡耳神子 @ 2018-09-26 21:10:28

这样写有什么问题吗?

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<algorithm>
using namespace std;
int dp[110][110],n,m,a[110][1],p;
int dfs(int,int);
int main()
{
    int ans=0;
    cin>>n>>m;
    for(int i=1;i<=n;++i)
    for(int j=1;j<=m;++j)
    {
        cin>>a[i][j];
        dp[i][j]=1;
    }   
    for(int i=1;i<=n;++i)
    for(int j=1;j<=m;++j)
    {
        ans=max(ans,dfs(i,j));
    }   
    cout<<ans;
    return 0;
}
int dfs(int x,int y)
{
    if(dp[x][y]) return dp[x][y];
    p=0;
    if(x>=1&&y>=1&&x<n&&y<=m&&a[x][y]>a[x+1][y]) p=max(p,(dfs(x+1,y)+1));
    if(x>=1&&y>=1&&x<=n&&y<m&&a[x][y]>a[x][y+1]) p=max(p,(dfs(x,y+1)+1));
    if(x>1&&y>=1&&x<=n&&y<=m&&a[x][y]>a[x-1][y]) p=max(p,(dfs(x-1,y)+1));
    if(x>=1&&y>1&&x<=n&&y<=m&&a[x][y]>a[x][y-1]) p=max(p,(dfs(x,y-1)+1));
    dp[x][y]=max(dp[x][y],p);
    return dp[x][y];
}

by ___I_AK_IOI @ 2018-09-26 21:18:19

@Mireco 没有问题吗???


by ___I_AK_IOI @ 2018-09-26 21:18:35

@Mireco 这代码怎么可能是对的


by Nemlit @ 2018-09-26 21:23:48

a数组小了


by 叶小枫 @ 2018-09-26 21:25:20

感觉好迷啊,您在dfs中dp是吗……有点没见过可能是我太弱了qwq


by 豊聡耳神子 @ 2018-09-26 21:34:04

......貌似递归的边界条件写错了?


by 豊聡耳神子 @ 2018-09-26 21:34:36

那我自己改一下好了


|