POJ1088
来源:互联网 发布:软件融合器 编辑:程序博客网 时间:2024/06/04 08:57
记忆化搜索+DP
一直X到最低点的最长路径,切Y>X,则Y到最低点的最短路径就是Y->X+X到最低点的距离
#include <iostream>
#include <stdio.h>#include <string.h>
using namespace std;
#define maxn 200 + 5
int map[maxn][maxn];
int dp[maxn][maxn];
int x[4] = {1,-1,0,0};
int y[4] = {0,0,1,-1};
int R,C;
int dfs( int r, int c)
{
int len = 1;
if(dp[r][c] > 1)
return dp[r][c];
for( int i = 0; i < 4; i++)
{
int row = r + x[i];
int col = c + y[i];
if( row >= 1 && row <= R && col >= 1 && col <= C && map[r][c] > map[row][col])
{
dp[r][c] = dfs(row,col) + 1;
回溯;
if( len < dp[r][c])
len = dp[r][c];
}
}
dp[r][c] = len;
return len;
}
int main()
{
int i,j;
int ans;
scanf("%d %d", &R, &C);
ans = 1;
for( i = 1; i<= R ; i++)
for( j = 1; j<= C; j++)
{
scanf("%d",&map[i][j]);
dp[i][j] = 1;
}
for( i = 1; i<=R; i++)
for( j = 1; j<=C; j++)
{
dp[i][j] = dfs(i,j);
if(dp[i][j] > ans)
ans = dp[i][j];
}
printf("%d\n",ans);
}
0 0
- POJ1088
- poj1088
- POJ1088
- POJ1088
- Poj1088
- poj1088
- POJ1088
- poj1088
- poj1088
- poj1088
- poj1088
- poj1088
- POJ1088
- POJ1088
- poj1088
- poj1088
- poj1088
- poj1088
- 1.3 Debugging of Shaders (调试着色器)
- 一次心惊肉跳的服务器误删文件的恢复过程
- CCAnimationCache(动画存储池addAnimation removeAnimationByName animationByName addAnimationsWithDictionary
- Tweak the Dock
- lua的简单对象实现以及简单继承
- POJ1088
- 【Android】Handler机制源码详解(一)
- CCAnimation(CCAnimationFrame:m_fDelayUnits m_pUserInfo。 CCAnimation:)
- <菜鸟学算法-A排序(选择排序)>
- 读书心得
- 【大话设计模式】——简单工厂模式
- 移位运算及其compiler-dependent
- XAMPP无法启动MySql
- Word 2010 从第n页开始设置页码