論「堆 優先數列」

2021-10-08 13:25:18 字數 2012 閱讀 7272

今天是我寫部落格的第二天,昨天寫的可真是不堪入目!今天又向同學請教了

一下,這才知道原因。

ε=(´ο`*)))唉,不說了,切入正題。今天又學了許多東西,但.....「棧」,我還

不太理解( ̄ー ̄)??(儘管我是做出來了火車進站)

火車進站題目描述

有乙個車站,每天都會有n輛車進站,進站按從1到n的順序進站。現在車站的站長想讓這些火車按照特定的順序出站,問可以做到嗎?當n為5時,出站順序若為1 2 3 4 5,可以做到,但是順序若為5 4 1 2 3,則不行。

輸入格式

乙個n,在1000之內,下接一些出站序列,當讀到乙個0時,則這個測試資料結束。

輸出格式

對每個序列輸出一行「yes」或「no」。

input

51 2 3 4 5

5 4 1 2 3

0output

yesno

資料規模與約定

時間限制:1s

空間限制:256mb

(**獻上(¬_¬)ノ

希望各位大佬們講解一下 thanks♪(・ω・)ノ

而接下來則是最重要最重要滴「堆&優先數列」

啥(⊙_⊙)?啥是堆(⊙_⊙)?今天聽老師講了不到乙個小時,我⊙▃⊙ σ(☉▽☉"a

懵懵懵懵懵懵懵~~~~~~~~~~~~

t_t t_t t_t t_t

以及那被稱為「古娜拉黑暗女神」的優先數列。

不說了,還是叫各位大佬講一下題吧~~

木板切割

題目描述

farmerjohn想修理牧場柵欄的某些小段。為此,他需要n(1<=n<=20,000)塊特定長度的木板,第i塊木板的長度為li(1<=li<=50,000)。然後,fj去買了一塊很長的木板,它的長度正好等於所有需要的木板的長度和。接下來的工作,當然是把它鋸成需要的長度。fj忽略所有切割時的損失——你也應當忽略它。

fj鬱悶地發現,他並沒有鋸子來把這塊長木板鋸開。於是他把這塊長木板帶到了farmer don的農場,想向fd借用鋸子。   作為乙個有商業頭腦的資本家,farmerdon沒有把鋸子借給fj,而是決定幫fj鋸好所有木板,當然fj得為此付出一筆錢。鋸開一塊木板的費用,正比於木板的長度。如果這塊木板的長度是21,那麼鋸開它的花費便是21美分。

談妥條件後,fd讓fj決定切割木板的順序,以及每次切割的位置。請你幫fj寫乙個程式,計算為了鋸出他想要的木板,他最少要花多少錢。很顯然,按不同的切割順序來切開木板,fj的總花費可能不同,因為不同的切割順序,會產生不同的中間結果。

輸入格式

•第1行: 乙個正整數n,表示fj需要木板的總數

•第2…n+1行: 每行包含乙個整數,為fj需要的某塊木板的長度

輸出格式

•第1行: 輸出乙個整數,即fj完成對木板的n-1次切割的最小花費 。

樣例資料

input38

58output

34輸入說明:

fj打算把一塊長為21的木板切成長度分別為8,5,8的三段。

輸出說明:

起初,木板的長度為21。第一次切割木板花費21美分,把木板切成長分別為13和8的兩塊。然後花費13美分把長為13的木板切成長為8和5的兩塊。這樣的總花費是21+13=34美分。如果第一次把木板切成長為16和5的兩塊,那麼第二次切木板的花費就是16美分,這樣的總花費就是37美分,比剛才花費34美分的方案來的差。

資料規模與約定

usaco 2007 nov gold

時間限制:1s

1s空間限制:256mb

256mb

以下是我九十分的**

#include

using

namespace std;

intmain()

cout<

return0;

}

拜拜~~┏(^0^)┛

演算法導論 堆排序 優先佇列

二叉堆是乙個陣列,可以被看做乙個近似的完全二叉樹。性質 建堆 可以使用自底向上的方法利用過程maxheapify 向下調整堆 把陣列a 1 n 轉換為堆。偽 向下調整堆maxheapify 偽 演算法描述 3.向上調整堆 向上調整堆 private void adjustup int a,int i...

演算法導論 堆排序 堆實現的優先佇列

時間複雜度 o nlgn 空間複雜度 具有空間原址性,即o n 表示堆的陣列包括兩個屬性 length是陣列的長度,heap size是堆的大小,某些操作要求某些資料不在堆中 把陣列建成乙個最大堆,就能利用堆實現最大優先佇列了 include using namespace std define p...

數列極差 優先佇列

題目描述 佳佳的老師在黑板上寫了乙個由 n 個正整數組成的數列,要求佳佳進行如下操作 每次擦去其中的兩個數 a 和 b,然後在數列中加入乙個數a b 1,如此下去直至黑板上剩下乙個數為止,在所有按這種操作方式最後得到的數中,最大的為max,最小的為 min,則該數列的極差定義為 m max min。...