20分求救,除了 #2 和 #3 全WA了

P1434 [SHOI2002] 滑雪

Kirie_LingKui @ 2019-11-06 10:51:34

如题所示

这是代码

#include<iostream>
#include<cstring>
using namespace std;
int mx,my,movex[4]={0,0,-1,1},movey[4]={-1,1,0,0};
int map[101][101],times[101][101];
int dfs(int x,int y)
{
    if(times[x][y]) return times[x][y];
    int maxl=1;
    for(int i=0;i<4;i++)
    {
        int nowx=x+movex[i];
        int nowy=y+movey[i];
        if(nowx>0&&nowx<=mx&&nowy>0&&nowy<=my&&map[nowx][nowy]<map[x][y])
        {
            int now=dfs(nowx,nowy)+1;
            if(now>maxl) maxl=now;
        }   
    }
    return times[x][y]+=maxl;
}
int main()
{
    cin>>mx>>my;
    memset(times,0,sizeof(times));
    for(int i=1;i<=mx;i++)
        for(int j=1;j<=my;j++)
            cin>>map[i][j];
    for(int i=1;i<=mx;i++)
        for(int j=1;j<=my;j++)
            if(!times[i][j]) dfs(i,j);
    int maxxn=0;
    for(int i=1;i<=mx;i++)
        for(int j=1;j<=my;j++) 
            if(maxxn<map[i][j]) 
                maxxn=map[i][j];
    cout<<maxxn;
    return 0;
}

by 微笑的坏坏 @ 2019-11-16 09:43:41

+1


by 微笑的坏坏 @ 2019-11-16 09:44:11

@lk2366817971 不知道哪错了


by pV_equals_nRT @ 2019-11-16 10:34:03

+1


by Kirie_LingKui @ 2019-11-16 13:12:15

@微笑的坏坏 (现在我已经AC了


|