这里讲的排列问题都可以用DFS的方式来进行搜索,似乎这种类型的题就是为DFS而生的,下面就是解题思路: (1)定义状态:即如何描述问题求解过程中每一步的状况。为了精简程序,增加可读性,我们一般将参与子结点扩展运算的变量组合成当前状态列入值参,以便回溯时能恢复递归前的状态; (2)边界条件:即在什么情 ...
分类:
其他好文 时间:
2018-03-24 14:33:20
阅读次数:
266
使用git reflog命令,查看当前仓库的操作日志。在日志中找出 回溯历史之前的哈希值,通过 git reset --hard命令恢复到回溯历史前的状态。 只要不进行 Git 的 GC(Garbage Collection,垃圾回收), 就可以通过日志随意调取近期的历史状态。 哈希值只要输入 4 ...
分类:
其他好文 时间:
2018-03-24 00:34:07
阅读次数:
200
python异常 python用异常对象(exception object)来表示异常情况。遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的 回溯(Traceback, 一种错误信息)终止执行: raise 语句 为了引发异常,可以使用一个类(Exception的子类)或者实例 ...
分类:
编程语言 时间:
2018-03-22 19:23:07
阅读次数:
200
0 题目 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 1 分析 这属于全排列算法。 假设,我们先选定第i个,为某个排序结果的第一个。那么只要将第i个元素,和第一个元素交 ...
分类:
其他好文 时间:
2018-03-22 11:00:22
阅读次数:
147
Newton方法主要解决无等式约束和等式约束的最优化方法。 1、函数进行二阶泰勒展开近似 Taylor近似函数求导等于0进而得到Newton步径。(搜索方向) 2、Newton减量(停止条件) 当1/2λ2<ε停止搜索 3、搜索策略 回溯直线搜索确定搜索步长t P.s 回溯直线搜索 下降方法:Δx步 ...
分类:
其他好文 时间:
2018-03-21 18:35:19
阅读次数:
266
0 题目 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 1 分析 深度优先遍历+回溯. 出点就是,当target==0,且节点没有子树的时候。 ...
分类:
其他好文 时间:
2018-03-21 11:42:29
阅读次数:
120
问题 给定一个图,求该图的最大匹配。即找到最多的边,使得每个点至多属于一条边。 这个问题的退化版本就是二分图最大匹配。 由于二分图中不存在奇环,偶环对最大匹配并无影响(可以调整)。所以增广路算法是可以顺利应用的。 在一般图中,我们还是尝试使用 BFS 增广路的算法。 然而一般图中还会出现奇环,在寻找 ...
分类:
其他好文 时间:
2018-03-15 11:23:59
阅读次数:
251
1. 枚举法 根据具体问题枚举出各种可能,从中选出有用信息或者问题的解。 这种方法利用计算机的速度优势,在解决简单问题时十分有效。 2. 贪心法 如前所述,根据问题的信息尽可能做出部分的解,并基于部分解逐步扩充得到完整的解。 在解决复杂问题时,这种做法未必能得到最好的解。 3. 分治法 把复杂问题分 ...
分类:
编程语言 时间:
2018-03-14 20:48:36
阅读次数:
218
在回溯法中,每个决策对应于给一个节点产生新的子树,而解的生成过程对应一颗解答树,节点的层数就是下一个待填充位置$cur$。 在多阶段决策的最优化问题,大多可以用dp解决,状态转移则类似于回溯法中的解答树。 UVa 116 $d(i,j)$表示从第此处出发到达最后一列的最小和,要求字典序最小,就同时要 ...
分类:
其他好文 时间:
2018-03-13 00:56:58
阅读次数:
191
cnblogs belong “cnblogs” 和 ”blong“的最长公共子序列为4 方法1-->枚举 将长度为M和N的长度的字符串进行匹配,需要匹配2M * 2N次,复杂度为指数级 方法2-->动态规划 Step1->计算公共子序列长度 Step2->根据长度回溯求出最长公共子序列 现有两个序 ...
分类:
其他好文 时间:
2018-03-13 00:54:23
阅读次数:
188