基本思想:将问题分为若干个子问题,子问题之间独立,互不影响。

主定理

T(n)属于{O(n^d) when ab^d)}
T(n)=aT(n/b)+f(n) f(n)属于O(n^d)

合并排序

T(n)={O(1) n<=1;2T(n/2)+O(n) n>=1}
带入主定理:a=2,b=2;d=1;那么a=b^d;O(n
log(n))

残缺的棋盘(Tromino谜题)

右Tromino是一个棋盘上的三个1x1方块组成的L型骨牌,那么如何用Tromino覆盖一个缺少了一个方块的2^n*2^n棋盘。Tromino是右Tromino旋转的四种情况。不能有重叠。

分治法解决思想

将原先的棋盘中间加一个Tromino,缺口方向为缺少块的方向,将棋盘均分为四块,那么问题就变成了四个都缺一块的小棋盘进行填充,如此一直分下去,直到一个小棋盘为2*2为止,将剩余填充即可完成。

分土地

将一块土地(长方形),均匀地划分为方块,方块尽可能的大。

快速排序

大整数乘法和Strassen矩阵乘法