五大常用算法之四:回溯法
来源:互联网 发布:高铁订单 知乎 编辑:程序博客网 时间:2024/04/24 07:24
回溯法
1、概念
2、基本思想
3、用回溯法解题的一般步骤:
4、算法框架
1: int a[n],i;
2: 初始化数组a[];
3: i = 1;
4: while (i>0(有路可走) and (未达到目标)) // 还未回溯到头
5: {
6: if(i > n) // 搜索到叶结点
7: {
8: 搜索到一个解,输出;
9: }
10: else // 处理第i个元素
11: {
12: a[i]第一个可能的值;
13: while(a[i]在不满足约束条件且在搜索空间内)
14: {
15: a[i]下一个可能的值;
16: }
17: if(a[i]在搜索空间内)
18: {
19: 标识占用的资源;
20: i = i+1; // 扩展下一个结点
21: }
22: else
23: {
24: 清理所占的状态空间; // 回溯
25: i = i –1;
26: }
27: }
1: int a[n];
2: try(int i)
3: {
4: if(i>n)
5: 输出结果;
6: else
7: {
8: for(j = 下界; j <= 上界; j=j+1) // 枚举i所有可能的路径
9: {
10: if(fun(j)) // 满足限界函数和约束条件
11: {
12: a[i] = j;
13: ... // 其他操作
14: try(i+1);
15: 回溯前的清理工作(如a[i]置空值等);
16: }
17: }
18: }
19: }
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法(转)
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法
- 五大常用算法之四:回溯法
- 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
- 状态栏notification、notificationmanager详解
- HDU 动态规划(46道题目)倾…
- 背包九讲
- 纠结的动态规划
- 五大常用算法之四:回溯法
- (转)回溯法-算法框架及基础
- 常用算法之回溯法
- WPF: 使用Flow Document (流文档)
- hdu 相遇周期
- HDU 七夕节
- HDU How many prime numbers
- Javascript 刷新框架及页面的方法总集
- HDU Leftmost Digit