第一个点WA,造的数据都过了,大佬看看

P1434 [SHOI2002] 滑雪

lixx @ 2019-05-16 07:05:22

#include<iostream>
#include<cstdio>
using namespace std;
long long int xx[5]={0,0,1,-1};
long long int yy[5]={1,-1,0,0};
long long int a[101][101],t[101][101],n,p,zx,zy; 
int zzd; 
int zd=0; 
int jyh(long int x,long int y)
{
    if(t[x][y]>0)
    {
        return t[x][y];
    }
    zzd=1;
    for(int i=0;i<4;i++)
    {
        zx=x+xx[i];
        zy=y+yy[i]; 
        if(zx<n&&zy<p&&zx>=0&&zy>=0&&a[x][y]>a[zx][zy])
        {
            zzd=max(jyh(zx,zy)+1,zzd);
        }
    }
    t[x][y]=zzd;
    return t[x][y];
}
int main()
{
    cin>>n>>p;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<p;j++)
        {
            cin>>a[i][j];
        }
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<p;j++)
        {
            zd=max(jyh(i,j),zd);
        }
    }
    cout<<zd<<endl;
    return 0;
} 

by 亲爱的王先生 @ 2019-05-16 07:44:10

可以再开个vis数组来判断是否访问过了。zzd完全可以改成t[x][y]。不然说不定会出些奇奇怪怪的问题


by lixx @ 2019-05-17 17:24:16

Thanks! Fuck you


by lixx @ 2019-05-17 17:25:02

sorry 刚才我儿子乱打


|