找回密码
 立即注册
查看: 1078|回复: 8

写了个线段树= =

[复制链接]

2038

回帖

1967

基友

6万

积分

月报三清

纯新人

Rank: 16Rank: 16Rank: 16Rank: 16

会员纪念勋章伯爵荣耀

发表于 2014-2-10 21:57:36 | 显示全部楼层 |阅读模式
var
a:array[0..30000] of longint;
left,right,num:array[1..100000] of longint;
n,m,i,j,k,x,y,s:longint;
flag:boolean;
procedure create(now,l,r:longint);
var
mid:longint;
begin
        left[now]:=l;
        right[now]:=r;
        if l=r then num[now]:=0
        else begin
        mid:=(l+r) div 2;
        create(now*2,l,mid);
        create(now*2+1,mid+1,r);
        num[now]:=num[now*2]+num[now*2+1];
        end;
end;

procedure tongji(now,x:longint);
var
mid:longint;
begin
        if flag=true then exit;
        mid:=(left[now]+right[now]) div 2;

        if x<mid then
        tongji(now*2,x);
         if flag=true then exit;
        if x=mid then begin s:=s+num[now*2]; flag:=true;  if flag=true then exit;  end;
         if flag=true then exit;
        if x>mid then begin  s:=s+num[now*2];
         tongji(now*2+1,x); end;
          if flag=true then exit;

end;

procedure insert(now,x:longint);
var
mid:longint;
begin
        if left[now]=right[now] then
        inc(num[now])
        else begin
        mid:=(left[now]+right[now]) div 2;
        if x<=mid then insert(now*2,x)
        else insert(now*2+1,x);
        num[now]:=num[now*2]+num[now*2+1];
        end;
end;


begin
        fillchar(left,sizeof(left),0);
        fillchar(right,sizeof(right),0);
        fillchar(num,sizeof(num),0);
        fillchar(a,sizeof(a),0);
        create(1,0,32300);
        readln(n);
        for i:=1 to n do
        begin
                readln(x,y);
                flag:=false;
                s:=0;
                tongji(1,x);
                inc(a[s]);
                insert(1,x);
        end;
        for i:=0 to n-1 do
                writeln(a[i]);
end.


权当练手= =
回复

使用道具 举报

648

回帖

811

基友

1681

积分

通神3段 Lv.6

Rank: 3Rank: 3

发表于 2014-2-10 23:15:59 | 显示全部楼层
好!。
回复 支持 反对

使用道具 举报

274

回帖

1073

基友

1669

积分

通神3段 Lv.6

Rank: 3Rank: 3

伯爵荣耀

发表于 2014-2-11 00:45:45 | 显示全部楼层
好顶赞  虽然我看不懂
回复 支持 反对

使用道具 举报

295

回帖

1187

基友

3240

积分

通神5段 Lv.8

Rank: 4

发表于 2014-2-11 01:49:01 | 显示全部楼层
该睡觉了
回复 支持 反对

使用道具 举报

1187

回帖

3088

基友

3921

积分

通神5段 Lv.8

Rank: 4

发表于 2014-2-11 02:02:50 | 显示全部楼层
不明觉厉
回复 支持 反对

使用道具 举报

2034

回帖

2万

基友

2万

积分

仙人7层 Lv.16

Invincible

Rank: 10Rank: 10Rank: 10

发表于 2014-2-13 21:59:31 来自手机 | 显示全部楼层
inc是什么→_→
回复 支持 反对

使用道具 举报

311

回帖

296

基友

536

积分

通神1段 Lv.4

Rank: 2

伯爵荣耀

发表于 2014-2-22 21:09:30 | 显示全部楼层
你无聊透了吧
回复 支持 反对

使用道具 举报

187

回帖

1301

基友

1948

积分

通神3段 Lv.6

Rank: 3Rank: 3

发表于 2014-3-4 21:24:01 | 显示全部楼层
好复杂
回复 支持 反对

使用道具 举报

280

回帖

-10

基友

190

积分

凡人2阶 Lv.2

Rank: 1

发表于 2014-5-16 10:53:56 | 显示全部楼层
逛逛
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|苍海国际 ( 鲁ICP备13020644号-1 )

GMT+8, 2024-5-20 11:14 , Processed in 0.039610 second(s), 29 queries .

Powered by Discuz! Theme By eRic Modified by 4bpa

© CangHai International We Do Our Rights!

返回顶部