求大佬看看哪里G了

P1434 [SHOI2002] 滑雪

FPXS11GO @ 2022-09-02 17:51:23

#include<bits/stdc++.h>
using namespace std;
int r,c,maxn,a[101][101],s[101][101];
const int dx[4]={0,0,1,-1};
const int dy[4]={1,-1,0,0};
int dfs(int x,int y){
    if(s[x][y])return s[x][y];
    s[x][y]=1;
    for(int i=0;i<4;i++)
    {
        int xx=dx[i]+x;
        int yy=dy[i]+y;
        if(xx>=1&&xx<=c&&yy>=1&&yy<=c&&a[x][y]>a[xx][yy])
        {   
            dfs(xx,yy);
            s[x][y]=max(s[xx][yy]+1,s[x][y]);
         } 
    }
    return s[x][y];
}
int main(){
    cin>>r>>c;
    for(int i=1;i<=r;r++)
        for(int j=1;j<=r;j++)
            cin>>a[i][j];
    for(int i=1;i<=r;r++)
        for(int j=1;j<=r;j++)
            maxn=max(maxn,dfs(i,j));
    cout<<maxn<<endl;

    return 0;
}

by joejoejoejoe @ 2022-09-02 18:29:20

首先```cpp

for(int i=1;i<=r;r++)
    for(int j=1;j<=r;j++)
        cin>>a[i][j];
for(int i=1;i<=r;r++)
    for(int j=1;j<=r;j++)
        maxn=max(maxn,dfs(i,j));

for里面应该改成i++。 然后,


if(xx>=1&&xx<=c&&yy>=1&&yy<=c&&a[x][y]>a[xx][yy])

这里的xx<=c应该改成xx<= r。

ac代码


by FPXS11GO @ 2022-09-02 20:25:10

@joejoejoe 感激不尽,谢谢大佬qwq


|