用treap写了写

 1 program hehe;
 2 type
 3  shu=record
 4   l,r,w,h,y,s:longint;
 5  end;
 6 var
 7  n,i,j,k,t,ans,root,size:longint;
 8  x:array[0..100000] of shu;
 9
10   procedure update(a:longint);
11   begin
12    x[a].s:=x[x[a].l].s+x[x[a].r].s+x[a].w;
13   end;
14
15   procedure rturn(var a:longint);
16   var
17    t:longint;
18   begin
19    t:=x[a].l;
20    x[a].l:=x[t].r;
21    x[t].r:=a;
22    x[t].s:=x[a].s;
23    update(a);
24    a:=t;
25   end;
26
27   procedure lturn(var a:longint);
28   var
29    t:longint;
30   begin
31    t:=x[a].r;
32    x[a].r:=x[t].l;
33    x[t].l:=a;
34    x[t].s:=x[a].s;
35    update(a);
36    a:=t;
37   end;
38
39   procedure insert(var a:longint;b:longint);
40   begin
41    if a=0 then
42    begin
43     inc(size);
44     a:=size;
45     x[a].s:=1;
46     x[a].w:=1;
47     x[a].h:=b;
48     x[a].y:=random(maxlongint);
49     exit;
50    end;
51    inc(x[a].s);
52    if x[a].h=b then inc(x[a].w)
53    else if b>x[a].h then
54    begin
55     insert(x[a].r,b);
56     if x[x[a].r].y<x[a].y then lturn(a);
57    end
58    else
59    begin
60     insert(x[a].l,b);
61     if x[x[a].l].y<x[a].y then rturn(a);
62    end;
63   end;
64
65   function find(a,b:longint):boolean;
66   begin
67    if a=0 then exit(false);
68    if x[a].h=b then exit(true);
69    if b>x[a].h then exit(find(x[a].r,b));
70    exit(find(x[a].l,b));
71   end;
72
73 begin
74  readln(t);
75  for i:=1 to t do
76  begin
77   read(n);
78   root:=0;
79   size:=0;
80   fillchar(x,sizeof(x),0);
81   for j:=1 to n do
82   begin
83    read(k);
84    if not find(root,k) then
85    if j=1 then write(k)
86    else write(‘ ‘,k);
87    insert(root,k);
88   end;
89   writeln;
90  end;
91 end.

2761: [JLOI2011]不重复数字

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 2336  Solved: 895
[Submit][Status][Discuss]

Description

给出N个数,要求把其中重复的去掉,只保留第一次出现的数。

例如,给出的数为1 2 18 3 3 19 2 3 6 5 4,其中2和3有重复,去除后的结果为1 2 18 3 19 6 5 4。

Input

输入第一行为正整数T,表示有T组数据。

接下来每组数据包括两行,第一行为正整数N,表示有N个数。第二行为要去重的N个正整数。

Output

对于每组数据,输出一行,为去重后剩下的数字,数字之间用一个空格隔开。

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

HINT

对于30%的数据,1 <= N <= 100,给出的数不大于100,均为非负整数;

对于50%的数据,1 <= N <= 10000,给出的数不大于10000,均为非负整数;

对于100%的数据,1 <= N <= 50000,给出的数在32位有符号整数范围内。

提示:

由于数据量很大,使用C++的同学请使用scanf和printf来进行输入输出操作,以免浪费不必要的时间。

Source

[Submit][Status][Discuss]

时间: 2024-08-29 14:00:23

用treap写了写的相关文章

Swift 函数调用到底写不写参数名

最近真正开始学 Swift,在调用函数的时候遇到一个问题:到底写不写函数名? 我们来看两个个例子: // 1 func test(a: Int, b: Int) ->Int { return a + b } test(a: 1, b: 1) // (A) test(1, b:1) // (B) //2 class Test { var name: String var age: Int init(name: String, age: Int) { self.name = name self.ag

★★★★★★★★★★★★★★★★★★啊好烦,写代码写的要吐血了哦

全数字好域名疯狂抢99%成功率|域名注册|已备案未注册|到期删除过期域名查询|-尽在(爱酷名_ikuMing.com) 啊好烦,写代码写的要吐血了哦 写代码真的好痛苦啊,快坚持不下去了,谁来拯救我一下哦

2014-5-27 今天我想写一写“思杨是个小吃货”

今天我想写一写"思杨是个小吃货" 哈哈,和宝宝在一起总是很开心,很愉快.虽然我的能量和他的不在一个Level上.人家是啥时候都精力旺盛而且不知疲惫. 昨天奶奶炒了个西葫芦,思杨指着其中一片说 给我这个. 我就随便给他夹了个小点的.他就嘟着嘴不吃,而且哭个嗓子说这个,这个... 哈哈,经奶奶提醒我才明白,他的手指的是一片大的,他要那个大点的.我给他的太小了.于是,我夹大的给他,他开心了 哈哈. 其实爸爸是觉得小的入味. 最近好像有个苗苗小朋友去家里玩.思杨老实说这是我的,那是我的.哎 ,

script脚本中写不写$(document).ready(function() {});的区别

$(document).ready() 里的代码是在页面内容都加载完才执行的,如果把代码直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了,此时如果你标签里执行的代码调用了当前还没加载过来的代码或者dom,那么就会报错,当然如果你把script标签放到页面最后面那么就没问题了,此时和ready效果一样. $(document).ready(function(){})可以简写成$(function(){}); 点击段落后,此段落隐藏: <html> <head

回写盘写速度被限速为10M左右

问题现像如下图所示: 用hd-speed等测试虚拟盘速度都能达到90M/s左右,但复制文件到虚拟盘速度最高只有10M/s 原因:由于客户机开机加载这个随机驱动和随机进程后,会对磁盘启动进程等有扫描检查的动作,并且对网络有限制,所以会就出现回写盘写速度被限制10M左右,目录为随机目录如下图所示: 解决方法: 开启驱动过滤对随机驱动进行拦截 原文地址:https://www.cnblogs.com/bingxing/p/8454527.html

今晚,终于自己把treap的实现写了一遍,感觉不错。加油。

1 #include<cstdio> 2 #include<iostream> 3 #include<cstdlib> 4 #define rep(i,j,k) for(int i = j; i <= k; i++ ) 5 using namespace std; 6 int n = 0; 7 8 int read() 9 { 10 int s = 0, t = 1; 11 char c = getchar(); 12 while( !isdigit(c) ){

javascript中写不写$(function() {});的区别

原地址 $(document).ready() 里的代码是在页面内容都加载完才执行的,如果把代码直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了,此时如果你标签里执行的代码调用了当前还没加载过来的代码或者dom,那么就会报错,当然如果你把script标签放到页面最后面那么就没问题了,此时和ready效果一样. $(document).ready(function(){})可以简写成$(function(){}); 点击段落后,此段落隐藏: <html> <

用CIL写程序:写个函数做加法

前言: 上一篇文章小匹夫为CIL正名的篇幅比较多,反而忽略了写那篇文章初衷--即通过写CIL代码来熟悉它,了解它.那么既然有上一篇文章做基础(炮灰),想必各位对CIL的存在也就释然了,兴许也燃起了一点探索它,掌握它的欲望.那么小匹夫就继续扯一扯CIL,接下来的几篇文章也都以上一篇文章中的那个CIL实现的Hello Wolrd程序为基础,继续通过写CIL代码实现一些功能的方式来和各位探讨交流,同时也加深自己对CIL的掌握和印象. 人生就是做加法 "我的肩上搭着她得衣裳,我嗅着她留在衣服上的体香..

共享代码总结。。。做个备份,有时间再写一写心得

Verilog /Xilinx 五级流水CPU代码 http://www.oschina.net/code/snippet_1782684_46324 Verilog VGA http://www.oschina.net/code/snippet_1782684_46319 BP网络进行手写数字识别 http://www.oschina.net/code/snippet_1782684_45069 决策树---ID3算法,决策树的训练和验证 http://www.oschina.net/code