讨论 / 怎么做呀,快帮帮(谢谢啦)
jerryR1 2010-07-20 17:23:00
点我顶贴 收藏 删除
怎们做
#1 hades@2009-02-25 00:17:00
回复 删除
program fg;

var

F:ARRAY[1..100000] OF longint;

i,j,k,m,n,l,r,t:longint;

a:longint;

procedure find;

var

mid:longint;

begin

while l<=r do

begin

mid:=(l+r) shr 1;

if f[mid]=a then begin

l:=mid;exit;

end else

if f[mid]>a then l:=mid+1 else r:=mid-1;

end;

end;

begin

readln(n);

for i:=1 to n do

begin

read(a);

if a=0 then continue;

l:=1;r:=t;

find;

if l<=t then f[l]:=a else

begin

inc(t);

f[t]:=a;

end;

end;

writeln(t);

end.

把自己的程序晾一下

#2 梦的最后@2010-07-20 17:23:00
回复 删除
思路是什么呢

查看更多回复
提交回复