分治思想的案例

2022-02-02 21:23:32 字數 501 閱讀 6041

分治思想是一種經典演算法思想。為了時常可以回顧,這裡記下我遇到的分治思想案例!本博文長期更新,歡迎交流!

1、農場主分割土地:

假設你是乙個農場主,有一塊小土地,1680*640那麼大,你要將這塊土地均勻的分成方塊,要使分出的方塊足夠大,應該怎麼分?

思路:分治的核心就是每次都把大問題變成乙個個小問題,每次遞迴都縮小問題的規模,然後就是描述出解決問題的基線條件(較簡單的描述)

此題的一種基線條件是分出更小的土地時一條邊的長度是另一條邊的整數倍,主函式的做法:從土地較短的那條邊入手,畫最大的正方形,直到留下一塊小土地,然後對小土地 判斷 如果滿足基線條件(一邊是另一邊的整數倍,則表示可以畫出該倍數個小方塊)則較短邊即為最大的方塊的邊長,否則對這塊小土地繼續呼叫主函式,直到找到位置

本題資料:1680*640  => 400*640 => 240*400 => 240 *160 => 80*160(滿足基線條件),從基線這裡逆推,把之前大的方格全都可以化成80*80的小方格! 

分治的思想

題目如下 趙老師真強 分治的基本條件就是能將乙個大問題轉化為若干具有相同或相似性質的小問題。這個題就是乙個很好的例子 在後半段中提取乙個公因子。是的因式分解後某一括號內的多項式和之前的有重疊。這樣就可以如此遞迴下去,直到到了邊界條件。這樣,就將o n 的演算法降到o logn 級別,速度大大增加。i...

分治思想的應用

在 n 個元素中找出最大元素和最小元素 我們先使用樸素演算法 includeusing namespace std define maxsize 200 int main int max,min max min a 0 for int j 1 jmax?a j max min a j min?min...

分治演算法思想

1.分解 對這k個子問題分別求解。如果子問題的規模仍然不夠小,則再劃分為k個子問題,如此遞迴的進行下去,直到問題規模足夠小,很容易求出其解為止。2.合併 將求出的小規模的問題的解合併為乙個更大規模的問題的解,自底向上逐步求出原來問題的解。3.分治演算法的使用條件 分治法所能解決的問題一般具有以下幾個...