# 2761: [JLOI2011]不重复数字（平衡树）

## 2761: [JLOI2011]不重复数字

Time Limit: 10 Sec  Memory Limit: 128 MB

Submit: 2133  Solved: 825

[Submit][Status][Discuss]

## Sample Input

2 11 1 2 18 3 3 19 2 3 6 5 4 6 1 2 3 4 5 6

## Sample Output

1 2 18 3 19 6 5 4 1 2 3 4 5 6

## Source

 1 /**************************************************************
2     Problem: 2761
3     User: HansBug
4     Language: Pascal
5     Result: Accepted
6     Time:1840 ms
7     Memory:2180 kb
8 ****************************************************************/
9
10 var
12    a,b:array[0..100000] of longint;
13    lef,rig,fix:array[0..100000] of longint;
14 procedure rt(var x:longint);
15           var f,l:longint;
16           begin
17                if (x=0) or (lef[x]=0) then exit;
18                f:=x;l:=lef[x];
19                lef[f]:=rig[l];
20                rig[l]:=f;
21                x:=l;
22           end;
23 procedure lt(var x:longint);
24           var f,r:longint;
25           begin
26                if (x=0) or (rig[x]=0) then exit;
27                f:=x;r:=rig[x];
28                rig[f]:=lef[r];
29                lef[r]:=f;
30                x:=r;
31           end;
32 function ins(var x:longint;y:longint):boolean;
33          begin
34               ins:=true;
35               if x=0 then
36                  begin
37                       x:=y;
38                       exit;
39                  end;
40               if a[y]<a[x] then
41                  begin
42                       if lef[x]=0 then lef[x]:=y else ins:=ins(lef[x],y);
43                  end
44               else if a[y]>a[x] then
45                    begin
46                         if rig[x]=0 then rig[x]:=y else ins:=ins(rig[x],y);
47                    end
48               else exit(false);
49          end;
50 begin
52      randomize;
53      for l:=1 to m do
54          begin
56               for i:=1 to n do
57                   begin
59                        lef[i]:=0;rig[i]:=0;
60                        fix[i]:=random(maxlongint);
61                   end;
63               for i:=1 to n do
65                      begin
66                           inc(k);
67                           b[k]:=a[i];
68                      end;
69               for i:=1 to k do
70                   if i<k then write(b[i],' ') else writeln(b[i]);
71          end;
73 end.   

0 条评论

• ### 1901: Zju2112 Dynamic Rankings

1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec  Memory Limit: 128 MB Submit: ...

• ### 1050: [HAOI2006]旅行comf

1050: [HAOI2006]旅行comf Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1495  So...

• ### 2953: [Poi2002]商务旅行

2953: [Poi2002]商务旅行 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 8  Solved: 8...

• ### 1901: Zju2112 Dynamic Rankings

1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec  Memory Limit: 128 MB Submit: ...

• ### 1050: [HAOI2006]旅行comf

1050: [HAOI2006]旅行comf Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1495  So...

• ### 算法模板——平衡树Treap 2

实现功能：同平衡树Treap 1（BZOJ3224 / tyvj1728） 这次的模板有了不少的改进，显然更加美观了，几乎每个部分都有了不少简化，尤其是删除部分...

• ### 算法模板——线段树8 （字符串回文变换）

实现功能：输入一个长度为N的由26个大写字母组成的字符串，输入M条指令："1 x y"，将x到y的字串重组构成一个字典序最小的回文串，如果不能构成回文串输出Fa...

• ### DTcms4/5远程图片自动保存报错：A generic error occurred in GDI+.

玩了很久DTcms，今天居然在保存远程图片到本地时，报了错误：A generic error occurred in GDI+.