[poj1088]滑雪(二维最长下降子序列)
2017-11-09 19:44
477 查看
解题关键:记忆化搜索
#include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> #include<iostream> #include<cmath> using namespace std; typedef long long ll; int d[102][102],n,m; int dp[102][102]; int dir[4][2]={0,1,0,-1,1,0,-1,0}; int dfs(int x,int y){ if(dp[x][y]) return dp[x][y]; int ans=0; for(int i=0;i<4;i++){ int tx=x+dir[i][0],ty=y+dir[i][1]; if(tx<0||tx>=n||ty<0||ty>=m) continue; if(d[tx][ty]<d[x][y]){ ans=max(ans,dfs(tx,ty)); } } return dp[x][y]=ans+1; } int main(){ while(~scanf("%d%d",&n,&m)){ for(int i=0;i<n;i++) for(int j=0;j<m;j++) scanf("%d",&d[i][j]); int ans=0; for(int i=0;i<n;i++) for(int j=0;j<m;j++) ans=max(ans,dfs(i,j)); printf("%d\n",ans); } return 0; }
相关文章推荐
- [dp]poj1088_滑雪 二维形式的最长下降子序列
- POJ 1008 滑雪(二维最长下降子序列)
- POJ1088(二维最长下降序列?)(我觉得是搜索)
- hdu 1160 dp (二维最长上升子序列 记录路径
- 动态规划之——最长不下降子序列
- 最长上升和下降子序列好题
- HDOJ(1069)最长下降子序列
- 动态规划——求最长下降/上升子序列
- 最长不下降子序列
- 【最长下降子序列+有难度】北大 poj 1836 Alignment
- UVa 10534 - Wavio Sequence (简单DP 最长上升下降子序列)
- 【tyvj1208】最长不下降子序列2
- POJ 1836 Alignment(DP max(最长上升子序列 + 最长下降子序列))
- POJ 1887-Testing the CATCHER(dp_最长下降子序列)
- PAT程序设计考题——甲级1045 (最长不下降子序列) C++实现
- hdu 1160 dp (二维最长上升子序列 记录路径
- POJ1952(最长下降子序列+去重)
- SGU - 199(最长不下降子序列)
- 动态规划——求最长下降/上升子序列
- UVA 231 最长下降子序列