hiho 學習日記 hiho一下第二十八周 (堆)

2021-09-01 13:19:42 字數 962 閱讀 6855

堆的形狀是乙個完全二叉樹,對於最大堆任意根的權值大於左右孩子的權值,而最小堆的任意根的權值小於左右孩子的權值

這裡演示的是最大堆

當插入乙個值的時候,把這個值新增到堆尾中,然後向上調整

voidup(

int p)

heap[p]

= a;

}void

insert

(int a)

刪除堆頂的值的時候,把堆尾的元素賦值給堆頂,然後向下調整

void

down

(int p)

} heap[p]

= a;

}int

getmax()

#include

using namespace std;

const

int maxn =

1e5+5;

const

int mod =

1e9+7;

const

int inf =

0x3f3f3f3f

;#define ll long long

int heap[maxn]

;int hlength;

void

down

(int p)

} heap[p]

= a;

}voidup(

int p)

heap[p]

= a;

}void

insert

(int a)

intgetmax()

intmain()

else

cout <<

getmax()

<< endl;

}return0;

}

hiho學習日記 hiho一下 第五十八周

給定字串s,判定s是否存在子串s 滿足 aa abb bcc c 的形式。其中abc為連續的三個字母,且a,b,c的數量相同。原題目中數量相等的連續n n 3 個字母也是可行的,而實際上當n 3時一定包含有n 3的情況。比如 abcd 就包含有 abc 和 bcd 兩個合法子串。最基本的思路為對s的...

hiho一下第143周

題目1 hiho密碼 時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述 小ho根據最近在密碼學課上學習到的知識,開發出了一款hiho密碼,這款密碼的秘鑰是這樣生成的 對於一種有n個字母的語言,選擇乙個長度為m的單詞 將組成這個單詞的所有字母按照順序不重複的寫出 即遇到相...

hiho一下 第197周 逆序單詞

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 在英文中有很多逆序的單詞,比如dog和god,evil和live等等。現在給出乙份包含n個單詞的單詞表,其中每個單詞只出現一次,請你找出其中有多少對逆序單詞。第1行 1個整數,n,表示單詞數量。2 n 50,000。第2.n ...