码迷,mamicode.com
首页 > 其他好文 > 详细

递增子序列最大和

时间:2015-08-06 23:51:16      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

【问题描述】
给定长度为n的正整数序列a1,a2,…,an。
求一个递增的子序列,和最大。
【输入】
第一行,n,表示给定序列的个数。
第二行,n个用空格隔开的正整数。
【输出】
递增子序列的最大和。
【数据范围限制】
n<=1000,0<ai<=109。

var a:array[1..100] of longint;
    f:array[1..100] of longint;
    n,i,j,ans:longint;
function max(x,y:longint):longint;
begin
  if x>y then exit(x) else exit(y);
end;
begin
  readln(n);
  fillchar(f,sizeof(f),0);
  for i:=1 to n do read(a[i]);
  f[1]:=a[1];//这句话应该放在数组读完数后面
  for i:=2 to n do
   begin
    for j:=1 to i-1 do
     if a[i]>a[j] then f[i]:=max(f[j],f[i]);
    f[i]:=f[i]+a[i];
   end;
  ans:=0;
  for i:=1 to n do
   if f[i]>ans then ans:=f[i];
  writeln(ans);
end.

 

递增子序列最大和

标签:

原文地址:http://www.cnblogs.com/yangqingli/p/4709300.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!