zoukankan      html  css  js  c++  java
  • 堆模板(pascal)洛谷P3378

    题目描述

    如题,初始小根堆为空,我们需要支持以下3种操作:

    操作1: 1 x 表示将x插入到堆中

    操作2: 2 输出该小根堆内的最小数

    操作3: 3 删除该小根堆内的最小数

    输入输出格式

    输入格式:

    第一行包含一个整数N,表示操作的个数

    接下来N行,每行包含1个或2个正整数,表示三种操作,格式如下:

    操作1: 1 x

    操作2: 2

    操作3: 3

     

    输出格式:

    包含若干行正整数,每行依次对应一个操作2的结果。

    输入输出样例

    输入样例#1:
    5
    1 2
    1 5
    2
    3
    2
    输出样例#1:
    2
    5

    说明

    时空限制:1000ms,128M

    数据规模:

    对于30%的数据:N<=15

    对于70%的数据:N<=10000

    对于100%的数据:N<=1000000(注意是6个0。。。不过不要害怕,经过编者实测,堆是可以AC的)

    样例说明:

    故输出为2、5

    明天市赛,继续复习板子。

    代码丑勿喷。

     1 program rrr(input,output);
     2 var
     3   a:array[0..1000010]of longint;
     4   n,opt,i,m,t,k,x:longint;
     5 procedure ins;
     6 begin
     7    inc(m);a[m]:=x;k:=m;
     8    while (k>1) and (a[k>>1]>a[k]) do begin t:=a[k>>1];a[k>>1]:=a[k];a[k]:=t;k:=k>>1; end;
     9 end;
    10 procedure del;
    11 begin
    12    a[1]:=a[m];dec(m);k:=1;
    13    while true do
    14       begin
    15          if k+k>m then exit;
    16          if k+k=m then
    17             begin
    18                if a[k+k]<a[k] then begin t:=a[k+k];a[k+k]:=a[k];a[k]:=t; end;
    19                break;
    20             end;
    21          if (a[k+k]>=a[k]) and (a[k+k+1]>=a[k]) then break;
    22          if a[k+k]<a[k+k+1] then
    23             begin t:=a[k+k];a[k+k]:=a[k];a[k]:=t;k:=k+k; end
    24         else begin t:=a[k+k+1];a[k+k+1]:=a[k];a[k]:=t;k:=k+k+1; end;
    25       end;
    26 end;
    27 begin
    28    assign(input,'r.in');assign(output,'r.out');reset(input);rewrite(output);
    29    readln(n);
    30    m:=0;
    31    for i:=1 to n do
    32       begin
    33          read(opt);
    34          if opt=1 then begin read(x);ins; end
    35          else if opt=2 then writeln(a[1])
    36          else del;
    37       end;
    38    close(input);close(output);
    39 end.
  • 相关阅读:
    mysql重置root密码
    node.js和JavaScript的关系
    转Git仓库分支(Branch)和标签(Tag)
    Spring MVC @CookieValue注解(5)
    Spring MVC @RequestParam(5)
    Spring REST(4)
    Spring MVC @PathVariable注解(3)
    Spring MVC @RequestMapping注解详解(2)
    Spring MVC入门示例(1)
    spring @Transactional注解参数详解(13)
  • 原文地址:https://www.cnblogs.com/Currier/p/6569078.html
Copyright © 2011-2022 走看看