求 pascal 代码!!!Longest Ordered Subsequence Time Limit:2000MS

求 pascal 代码!!!
Longest Ordered Subsequence



Time Limit:2000MS
Memory Limit:65536KB
64bit IO Format:%I64d & %I64u

Submit
Status





Description
A numeric sequence of ai is ordered if a1 <
a2 < ... <
aN. Let the subsequence of the given numeric sequence (
a1,
a2, ...,
aN) be any sequence (
ai1,
ai2, ...,
aiK), where 1 <=
i1 <
i2 < ... <
iK <=
N. For example, sequence (1, 7, 3, 5, 9, 4, 8) has ordered
subsequences, e. g., (1, 7), (3, 4, 8) and many others. All longest
ordered subsequences are of length 4, e. g., (1, 3, 5, 8).

Your program, when given the numeric sequence, must find the length of its longest ordered subsequence.


Input
The first line of input file contains the length of sequence N. The
second line contains the elements of sequence - N integers in the range
from 0 to 10000 each, separated by spaces. 1 <= N <= 1000

Output
Output file must contain a single integer - the length of the longest ordered subsequence of the given sequence.


Sample Input
7
1 7 3 5 9 4 8

Sample Output
4
wm2001 1年前 已收到1个回答 举报

nandehulu 幼苗

共回答了16个问题采纳率:100% 举报

经典的最长上升子序列 0.0,有必要熟练掌握 0.0?var
n, i, j, ans:longint;
a, f:array [0..1005] of longint;
begin
readln(n);
for i:=1 to n do read(a[i]);

f[0]:=0;f[1]:=1;a[0]:=-2100000000;
for i:=2 to n do
begin
f[i]:=1;
for j:=1 to i-1 do
if (a[j]f[i]) then f[i]:=f[j]+1;
end;

ans:=0;
for i:=1 to n do
if (f[i]>ans) then ans:=f[i];
writeln(f[i]);
end.这个n是1000,所以O(n^2)的就行了有心情可以研究下这个的O(nlogn)的

1年前

8
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.013 s. - webmaster@yulucn.com