codevs 1958 刺激
生活随笔
收集整理的這篇文章主要介紹了
codevs 1958 刺激
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
/*
這題并不難 思路很簡(jiǎn)單
但是 如果記憶化的話 是會(huì)跪掉的
我們可能想到用01維護(hù)下次往上還是往下
但是我們忽略了 “每個(gè)的高度不得高于起點(diǎn)高度”
可能之前記憶化記下的與現(xiàn)在用到的高度不一樣
*/
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,g[110][110],f[110][110][2],ans,limit;
int xx[3]={0,0,1};
int yy[3]={0,1,0};
int Dfs(int x,int y,int p)
{//if(f[x][y][p]!=1)return f[x][y][p];for(int i=1;i<=2;i++){int nx=x+xx[i];int ny=y+yy[i];if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&g[nx][ny]<=limit&&((p==1&&g[nx][ny]>g[x][y])||(p==0&&g[nx][ny]<g[x][y])))f[x][y][p]=max(f[x][y][p],Dfs(nx,ny,p^1)+1);}return f[x][y][p];
}
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){scanf("%d",&g[i][j]);f[i][j][0]=f[i][j][1]=1;}for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){limit=g[i][j];ans=max(ans,Dfs(i,j,1));ans=max(ans,Dfs(i,j,0));}printf("%d\n",ans);return 0;
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/yanlifneg/p/5574174.html
總結(jié)
以上是生活随笔為你收集整理的codevs 1958 刺激的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【LeetCode】-- 260. Si
- 下一篇: Tomcat根目录下work文件夹的作用