帝都Day4 3 還是資料結構

2022-05-27 16:51:13 字數 995 閱讀 4851

可並堆

左偏樹中

合併的時候,把權志較大的根作為根節點,把這棵樹右子樹和另一棵樹合併。

說明白點:(上圖描述有點問題)

設x表示根權值較大的左偏樹,y表示根權值較小的左偏樹,合併的時候把x的根節點當做新的樹的根節點,把x左子樹當做新的左子樹,x的右子樹和y合併的樹作為新的右子樹。最後比較dist,如果新的樹的左子樹的dist小於右子樹的,交換。

int merge(int x,int y)//x y是要合併的左偏樹的兩個根 返回值是新樹的根

還有...add del

int add(int x)

int del()//刪除根節點(不要刪除內部節點= =)

操作的時間複雜度都為o(log2n)

例題:hdu1512——猴子打架

某dalao的思路:

我寫的「**」(可能出問題)

void 打架(int x,int y)

apio2012 dispatching【洛谷難度省選/noi-】

void dfs(int x)

for(;sum[x]>m;)//處理當前節點,讓總權值(總開銷)不超過m

ans=max(ans,num[x]*l[x]);//取最大值(元素數量乘以領導能力(忍者數量乘以領導能力))

}

資料結構與演算法練習43

這裡復用了求二叉樹的最大深度的 遞迴,反覆比較左右二叉樹深度的差值。public class treenode public static bool isbalanced treenode root else return isbalanced root.left isbalanced root.r...

資料結構 day1

資料結構往往跟演算法有很大關係 ep1 圖書館 ep2 遞迴函式很有可能導致記憶體溢位 因為每一次遞迴都在記憶體裡新建了乙個 程式 如果遞迴次數過多,那麼這個程式占用的空間會很恐怖 ep3 多項式 正常演算法和秦九韶演算法的比較。秦九韶演算法有效的減少了乘法的量級 clock 獲得從程式開始到呼叫這...

資料結構Day9

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?總結 最近這段時間太忙了,今天終於有時間可以坐下來繼續我的學習之...