您的位置:首页 > 其它

3636 nested dolls{dilworth}

2013-11-04 21:43 218 查看
var
  t,k,i,j,n:longint;
  l,w:array[1..20000] of longint;
procedure swap(var a,b:longint);
var
  t:longint;
begin
  t:=a;a:=b;b:=t;
end;
procedure qsort(le,ri:longint);
var
  i,j,ml,mw:longint;
begin
  i:=le;
  j:=ri;
  ml:=l[(le+ri) shr 1];
  mw:=w[(le+ri) shr 1];
  repeat
    while (l[i]
    while (l[j]>ml) or
((l[j]=ml) and (w[j]>mw)) do dec(j);
    if i<=j then
     
begin
     
  swap(l[i],l[j]);
     
  swap(w[i],w[j]);
     
  inc(i);
     
  dec(j);
     
end;
  until i>j;
  if j>le then qsort(le,j);
  if i
end;
function gettime:longint;
var
  f:array[1..20000] of longint;
  i,j:longint;
begin
  qsort(1,n);
  for i:=1 to n do
    f[i]:=1;
  for i:=2  to n do
    for j:=i-1 downto 1
do
     
begin
     
  if (w[j]>w[i]) and (f[j]+1>f[i])
then
     
    f[i]:=f[j]+1;{超时,求优化。。}
     
end;
  gettime:=0;
  for i:=1 to n do
    if gettime
end;
begin
  read(t);
  for k:=1 to t do
    begin
     
fillchar(l,sizeof(l),0);
     
fillchar(w,sizeof(w),0);
     
read(n);
      for
i:=1 to n do
     
  read(l[i],w[i]);
     
writeln(gettime);
    end;
end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: