Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
19543 | 孙文谦 | 方格取数 | C++ | 通过 | 100 | 1 MS | 292 KB | 730 | 2021-05-16 16:56:28 |
#include<bits/stdc++.h> using namespace std; typedef long long ll; int a[102][102],n,m,s,maxn; void dfs(int t,int k ,int temp) { if(a[t][k]>=a[t-1][k]&&a[t][k]>=a[t+1][k]&&a[t][k]>=a[t][k+1]&&a[t][k]>=a[t][k-1]) { maxn=max(temp,maxn); return; } if(a[t][k]<a[t+1][k]) dfs(t+1,k,temp+a[t+1][k]); if(a[t][k]<a[t-1][k]) dfs(t-1,k,temp+a[t-1][k]); if(a[t][k]<a[t][k+1]) dfs(t,k+1,temp+a[t][k+1]); if(a[t][k]<a[t][k-1]) dfs(t,k-1,temp+a[t][k-1]); } int main() { cin>>n>>m>>s; for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) { s=s*345%19997; a[i][j]=s%10+1; } } for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) dfs(i,j,a[i][j]); } cout<<maxn<<endl; return 0; }