八大算法

(内容不断跟新改进)

1、枚举:

 定义:将问题的答案一一列举,然后根据条件判断此答案是否合适,保留合适的,丢弃不合适的。

相关题目:POJ1753、POJ2965

2、递推:

 定义:不断利用已有的信息推导出新的东西。(顺推、逆推)

相关题目:poj2506

3、递归:

 定义:不断调用自身,把问题转化为规模缩小了的同类问题的子问题。然后递归调用函数(或过程)来表示问题的解。需要有明确的结束条件,运行效率低。(最好不用)

相关题目:

4、分治:

 定义:将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相 同。求出子问题的解,就可得到原问题的解。(分解、求解、合并)

相关题目:POJ2524

5、贪心:

定义:从问题的某一初始值出发,while能向给定总目标前进一步,求出可行解的一个接元素,有所有解元素组合成问题的一个可行解。(精确度低)

相关题目:POJ1328、POJ2109、POJ2586

6、回溯(试探):

定义:针对所给问题,定义问题的解空间;确定易于搜索的解空间结构;以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。(解空间、约束条件、状态树)

7、迭代:

定义:确定迭代变量,建立迭代关系式、对迭代过程进行控制

8、模拟:

定义:根据题目给出的规则对题目的要求的相关过程进行编程模拟。

相关题目:POJ1068、POJ2632、POJ1573、poj2993、POJ2996

posted @ 2016-03-07 15:52  codeg  阅读(295)  评论(0编辑  收藏  举报