3 条题解

  • 1
    @ 2022-10-22 9:58:25
    #include<bits/stdc++.h>
    using namespace std;
    int n,m,ans=1,vis[105][105],sum,s;
    int dx[4]= {-1,0,0,1},dy[4]= {0,-1,1,0};
    int a[105][105];
    void dfs(int x,int y,int temp) {
        vis[x][y]=1;
        temp+=a[x][y];
        ans=max(ans,temp);
        for(int i=0; i<4; i++) {
            int tx=x+dx[i],ty=y+dy[i];
            if(tx>0&&ty>0&&tx<=n&&ty<=m&&vis[tx][ty]==0&&a[tx][ty]>a[x][y]) {
                dfs(tx,ty,temp);
     
            }
        }
        vis[x][y]=0;
    }
    int main() {
        cin>>n>>m>>s;
        for(int i=1; i<=n; i++) {
            for(int j=1; j<=m; j++) {
                s=((s%19997)*345)%19997;
                a[i][j]=(s%10)+1;
            }
        }
        for(int i=1; i<=n; i++) {
            for(int j=1; j<=m; j++) {
                sum=0;
                dfs(i,j,0);
            }
        }
        cout<<ans<<endl;
        return 0;
    }
    
    

    信息

    ID
    378
    时间
    1000ms
    内存
    128MiB
    难度
    4
    标签
    递交数
    44
    已通过
    22
    上传者