好像這題二分也可以做……
話說這年頭寫堆都不用heapify 函式的?
program p2010;
const
maxc=100000;
maxn=19999;
maxaid=100000;
maxf=2000000000;
type
node=record
a,b:longint;
end;
heap=record
size:longint;
d:array[1..maxc] of longint;
end;
var n,c,f,i,j:longint;
a:array[1..maxc] of node;
h:heap;
before,after:array[1..maxc] of longint;
procedure swap(var a,b:longint);
var p:longint;
begin
p:=a;a:=b;b:=p;
end;
procedure qsort(l,r:longint);
var i,j:longint;
m,p:node;
begin
i:=l;
j:=r;
m:=a[(l+r) shr 1];
repeat
while a[i].am.a do dec(j);
if i<=j then
begin
swap(a[i].a,a[j].a);
swap(a[i].b,a[j].b);
inc(i);dec(j);
end;
until i>j;
if l1 do
begin
if d[i shr 1]>=d[i] then break;
swap(d[i shr 1],d[i]);
i:=i shr 1;
end;
end;
end;
procedure pop;
var i,j:longint;
begin
with h do
begin
d[1]:=d[size];
dec(size);
i:=1;
while i shl 1<=size do
begin
j:=i shl 1;
if (j=before[i]+after[i]+a[i].b then
begin
num:=i;
end;
if num=-1 then exit(-1);
exit(a[num].a);
end;
begin
while not seekeof do
begin
fillchar(h,sizeof(h),0);
read(n,c,f);
for i:=1 to c do read(a[i].a,a[i].b);
qsort(1,c);
writeln(main);
end;
end.
二叉樹入門
對二叉樹的儲存,即可採用順序儲存結構 陣列 也可採用鏈式儲存結構 鍊錶 在鏈式儲存結構中,每乙個節點都含有乙個資料域,兩個指標域 分別用來指向該節點的左 右子樹。利用這種節點構成的鏈式儲存結構稱為二叉鍊錶。為簡單起見,給定一資料集,以該資料集中的元素建立一完全二叉樹。這裡不考慮非完全二叉樹的情況。如...
二叉樹入門
樹是模擬實現樹幹和樹枝的一種資料結構,如同樹根一樣,樹結構都有乙個 根結點 根節點之下如同樹的樹枝一樣,可以擁有0到n個 子結點 也就是樹的 分支 如上圖。a就是這棵樹的根節點,b c就是結點a的子結點。也就是樹枝。每一根樹枝當然可以有小樹枝,也就是子節點本身可以擁有子結點。途中d和e是b的子結點。...
輸出二叉查詢樹poj 2418 二叉查詢樹
改章節朋友在深圳遊玩的時候突然想到的.近期就有想寫幾篇關於輸出二叉查詢樹的文章,所以回家到之後就奮筆疾書的寫出來發布了 二叉查詢樹 對於樹中的個每節點x,它的左子樹中的全部節點的值小於x的值,它的右子樹中的全部節點的值大於x的值 目題粗心 給出一些單詞 包括大小寫和格空 單詞可以重複湧現 單詞最多1...