雪黛依梦
幸福的飞翔——简单世界
C++博客
首页
新随笔
联系
聚合
管理
posts - 99, comments - 8, trackbacks - 0
grids 2757 求最大子例长度
//动态规划题目最重要的一点是如何将问题分解得到子问题,并且将子问题解决
//本题以下标为状态量,找到以该下标位置 i 为终点时的最长子列:如果 i 位置的值 > i - 1位置的值,则长度加 1 ,
//所以利用判断大小来递归,出口是:下表为 0 时,长度为 1
//利用 nMaxLen【i】记录长度避免了重复计算
#include
<
stdio.h
>
#include
<
stdlib.h
>
#include
<
string
.h
>
int
main ()
{
int
n;
int
b[
1000
];
int
nMaxLen[
1000
];
while
(scanf (
"
%d
"
,
&
n)
!=
EOF
&&
1
<=
n
&&
n
<=
1000
)
{
memset (nMaxLen,
0
,
sizeof
(nMaxLen));
//
将输入的数值存入数组 b 中
for
(
int
i
=
0
; i
<
n; i
++
)
{
scanf (
"
%d
"
,
&
b[i]);
}
//
找到每一个状态下标 i 对应的最大子列长度,并将其存入数组nMaxLen[]中
nMaxLen[
0
]
=
1
;
for
(
int
i
=
1
; i
<
n; i
++
)
{
int
temp
=
0
;
for
(
int
j
=
0
; j
<
i ; j
++
)
{
if
( b[i]
>
b[j])
{
if (temp < nMaxLen[j]) //只有当当前的长度 < 之前一位数的序列长时才可以赋值,最后起到 temp + 1 的作用
// 为什么:最大序列可能出现在 j 之后如: 7 9 10 6 11
temp = nMaxLen[j];
}
}
nMaxLen[i]
=
temp
+
1
;
}
//
遍历数组nMaxLen从中读出最大值,即:在该位置时取得最大的子序列
int
max
=
-
1
;
for
(
int
i
=
0
; i
<
n; i
++
)
{
if
(nMaxLen[i]
>
max)
max
=
nMaxLen[i];
}
printf (
"
%d\n
"
, max);
}
//
system ("pause");
return
0
;
}
posted on 2010-08-14 15:38
雪黛依梦
阅读(189)
评论(0)
编辑
收藏
引用
所属分类:
动态规划
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
hdu 1160 简单题
hdu 1466 DP 直线的可能交点数目
hdu 1087 DP
grids 2757 求最大子例长度
hdu 2050 折线分割平面
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
<
2010年8月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(4)
给我留言
查看公开留言
查看私人留言
随笔分类
HTML(1)
JAVA--J2SE(5)
QT
背包----贪心、回溯、分支界限(5)
并查积(3)
博弈(6)
大数(7)
动态规划(5)
哈希法(4)
技巧题(1)
简单题(15)
考研相关(5)
蛮力(1)
模拟题(1)
母函数(3)
排序题(2)
求最短路径(1)
数论(11)
数学题(1)
搜索---DFS BFS(1)
字典树(1)
字符串处理题(6)
最小生成树(4)
随笔档案
2011年8月 (1)
2011年7月 (9)
2011年3月 (3)
2010年11月 (3)
2010年9月 (12)
2010年8月 (71)
文章档案
2010年8月 (1)
搜索
最新评论
1. re: hdu 1211 数论
你做的什么啊,数据弱让你过了@Lysander
--44
2. re: 全国34所计算机研究生录取分数线
全国34所计算机研究生录取分数线 ?
--王丹
3. re: hdu 1005
递归想都不要想?矩阵乘法+快速幂不高兴
--WonderMan
4. re: hdu 1085
评论内容较长,点击标题查看
--Dack Sword
5. re: hdu 1085
弱弱的说一句,你这个代码是有问题,刚刚我试了,WA了,以前OJ的数据太弱了,侥幸通过了额
--Dack Sword
阅读排行榜
1. Floyd算法详解:求解任意两点间的最短距离(12868)
2. 生产者消费者问题(wait、notify、 notifyAll用法示例)(2660)
3. 全国大学计算机专业排名(转贴)((2316)
4. ZOJ 3197 贪心 最小区间覆盖问题(2283)
5. poj 1001(1891)
评论排行榜
1. hdu 1085(2)
2. hdu 1211 数论(2)
3. 全国34所计算机研究生录取分数线 (1)
4. hdu 1005(1)
5. 中国剩余定理(1)