pku_acm_1088
2011-01-06 15:30
225 查看
//这一题 一开始以为必须从最高点开始,结果用动态规划,被WA了(看来今后还得注意看题阿),后来用带搜索记忆的递归去解决,AC了
#include<stdio.h>
int C, R, a[100][100], cnt[100][100];
int f(int h, int i, int j)
{
int m = 0;
if(cnt[i][j] > 0) return cnt[i][j];
if(a[i-1][j]<h && i-1>=0)
if(f(a[i-1][j], i-1, j)>m)
m = f(a[i-1][j], i-1, j);
if(a[i][j+1]<h && j+1<R)
if(f(a[i][j+1], i, j+1)>m)
m = f(a[i][j+1], i, j+1);
if(a[i+1][j]<h && i+1<C)
if(f(a[i+1][j], i+1, j)>m)
m = f(a[i+1][j], i+1, j);
if(a[i][j-1]<h && j-1>=0)
if(f(a[i][j-1], i, j-1)>m)
m = f(a[i][j-1], i, j-1);
return cnt[i][j] = m + 1;
}
int main()
{
int i, j, max = -999999;
scanf("%d%d", &C, &R);
for(i=0; i<C; i++)
for(j=0; j<R; j++)
{
scanf("%d", &a[i][j]);
cnt[i][j] = 0;
}
for(i=0; i<C; i++)
{
for(j=0; j<R; j++)
{
f(a[i][j], i, j);
}
}
for(i=0; i<C; i++)
{
for(j=0; j<R; j++)
{
if(cnt[i][j] > max)
{
max = cnt[i][j];
// x = i;
// y = j;
}
}
}
printf("%d/n", max);
return 0;
}
#include<stdio.h>
int C, R, a[100][100], cnt[100][100];
int f(int h, int i, int j)
{
int m = 0;
if(cnt[i][j] > 0) return cnt[i][j];
if(a[i-1][j]<h && i-1>=0)
if(f(a[i-1][j], i-1, j)>m)
m = f(a[i-1][j], i-1, j);
if(a[i][j+1]<h && j+1<R)
if(f(a[i][j+1], i, j+1)>m)
m = f(a[i][j+1], i, j+1);
if(a[i+1][j]<h && i+1<C)
if(f(a[i+1][j], i+1, j)>m)
m = f(a[i+1][j], i+1, j);
if(a[i][j-1]<h && j-1>=0)
if(f(a[i][j-1], i, j-1)>m)
m = f(a[i][j-1], i, j-1);
return cnt[i][j] = m + 1;
}
int main()
{
int i, j, max = -999999;
scanf("%d%d", &C, &R);
for(i=0; i<C; i++)
for(j=0; j<R; j++)
{
scanf("%d", &a[i][j]);
cnt[i][j] = 0;
}
for(i=0; i<C; i++)
{
for(j=0; j<R; j++)
{
f(a[i][j], i, j);
}
}
for(i=0; i<C; i++)
{
for(j=0; j<R; j++)
{
if(cnt[i][j] > max)
{
max = cnt[i][j];
// x = i;
// y = j;
}
}
}
printf("%d/n", max);
return 0;
}
相关文章推荐
- PKU_ACM_1088 滑雪
- Pku acm 1088 滑雪 动态规划题目解题报告(十五)
- 滑雪-PKU ACM 1088
- acm pku 1088 滑雪
- PKU ACM 1012 Joseph 约瑟夫
- PKU ACM 1015 Jury Compromise (DP)
- ACM: 动态规划 poj 1088
- Pku acm 1080 Humman Gene Function 动态规划题目解题报告(八)
- Pku acm 1002 487-3279 排序算法解题报告(一) ----二叉查找数(BST)
- Pku acm 3041 Asteroids 数据结构题目解题报告(十六)---- 匈牙利算法求二分图的最大匹配
- PKU_ACM_3620_Avoid The Lakes
- PKU_ACM_2501_Average Speed
- [An AC a day]1088_POJ_ACM
- pku acm 2021题解题报告
- pku acm 2362 square 解题报告
- ACM--解析HTML--HDOJ 1088--Write a simple HTML Browser--水
- Pku acm 2075 Tangled in Cables数据结构题目解题报告(十一)最小生成树:prim算法&amp;amp;二叉查找树
- PKU ACM 1125
- PKU ACM 1004
- 初学ACM - 组合数学基础题目PKU 1833