3636 nested dolls{dilworth}

来源:互联网 发布:发烧碟推荐知乎 编辑:程序博客网 时间:2024/06/08 19:12
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 1do
     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);
      fori:=1 to n do
       read(l[i],w[i]);
     writeln(gettime);
    end;
end.
原创粉丝点击