區間查詢
三個重要函式
find
lower_bound
upper_bound
區間二分重要模型
最大子段和
二分後,尋找左區間、右區間和橫跨mid三種情況的最大值一維最近點對–>拓展:二維最近點對
分治找最大值
快速冪從來不用分治寫,但是老師在這裡講了
拓展:高精度,矩陣快速冪
歸併排序
拓展:求逆序對
快速排序
思想:挖坑填數 挖什麼坑呢?可以rand
拓展:求第k大的數(優先佇列也能做)
二分列舉
直接對答案進行列舉,將答案進行二分典型問題:
最大值最小化問題(求最大值的最小值)
三分法
二分法適用於單調有序的數列,而三分法適用於凹凸函式典型例題,求凸函式的最大值:
三分區間start left right end 比較f(left)和f(right)確定極值點在哪個區間 [start,right] 或[left,end]每次區間縮小為2/3
貼份大神寫的分治總結
演算法筆記之演算法思想 分治演算法
分治演算法 divide and conquer 的核心思想其實就是四個字,分而治之 也就是將原問題劃分成 n 個規模較小,並且結構與原問題相似的子問題,遞迴地解決這些子問題,然後再合併其結果,就得到原問題的解。分治演算法是一種處理問題的思想,遞迴是一種程式設計技巧。實際上,分治演算法一般都比較適合...
分治演算法的學習筆記
分治演算法應用一 漢諾塔問題 問題描述 漢諾塔問題 於乙個古老的傳說,世界剛被建立的時候,有一座鑽石寶塔,上面有64個金碟,所有碟子按照從大到小的順序從塔底堆到塔頂,從世界創世開始,牧師們一直在努力將塔a的碟子借助b移到c上,每次只能移動乙個,而且不能讓小的放在大的下面 原理 對漢諾塔問題的求解簡化...
演算法思想筆記 分治法
1 合併排序 2 快速排序 3 折半查詢 4 二叉樹遍歷 5 大整數乘法和strassen乘法 6 最近對問題和凸包問題的分治解法 簡介 大整數乘法 把a的前半部分記為a1,後半部分極為a0 b的前半部分記為b1,後半部分記為b0 即a a1 10 n 2 a0 b b0 10 n 2 b0 則有c...