棋盘覆盖的问题.ppt

Tromino谜题;分治法;分治法的三个步骤;它的一般算法设计范型如下: DIVIDECONQUER (P) 1 if |P|≤c 2 then return(DSOLVE(P)) 3 else divide P into k into P1, P2, …, Pk subproblems 4 for i ← 1 to k 5 do si ← DIVIDECONQUER(Pi) 6 S←COMBINE(s1, s2, …, sk) 7 return S ; 从分治法的一般设计模式可以看出, 直接用它设计出的算法是一个递归算法。我们可用递归方程描述递归算法的运行时间。 设T(n)表示用分治法求解规模为n的问题所需的计算时间,如果问题规模足够小,比如n≤c,则可直接求解问题,T(n)=Θ(1)。 假定将原问题分为k个子问题,每一个子问题规模是原问题的1/m, 若分解该问题和合并该问题的时间分别为D(n)和C(n),则算法的计算时间T(n)可表示为如下的递归方程: ;;在一个2k×2k (k≥0)个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为特殊方格。 棋盘覆盖问题要求用如图(b)所示的L型骨牌覆盖给定棋盘上除特殊方格以外的所有方格,且骨牌之间不得有重

文档评论(0)

1亿VIP精品文档

相关文档