堆的形狀是乙個完全二叉樹,對於最大堆任意根的權值大於左右孩子的權值,而最小堆的任意根的權值小於左右孩子的權值
這裡演示的是最大堆
當插入乙個值的時候,把這個值新增到堆尾中,然後向上調整
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 ...