1.将DFA最小化:教材P65 第9题 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 3.给定如下文法 G[S]: S →AB A → aA | ? B → b | bB 给出句子aaab 的一个自顶向下语法分析过程,并说明回溯产生的原因是什么? S -> AB ...
分类:
其他好文 时间:
2019-11-06 15:04:14
阅读次数:
87
一、BF算法的基本思想 BF(Brute Force)算法是模式匹配中最简单、最直观的算法。该算法最基本的思想是从主串的第 start 个字符起和模式P(要检索的子串)的第1个字符比较,如果相等,则逐个比较后续字符;比较过程中一旦发现不相等的情况,则回溯到主串的第 start+1 个字符位置,重新和 ...
分类:
编程语言 时间:
2019-11-06 00:49:52
阅读次数:
93
题目描述 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 思路 回溯法 ,定义一个当前路径和所有路径。 代码 # -*- coding:utf- ...
分类:
编程语言 时间:
2019-11-04 17:51:24
阅读次数:
89
我终于知道我为什么不喜欢写博客了。。 因为我的博客太丑了。 还好我知道了什么是打表。 一个深搜模板 int search(int t) { if(满足输出条件) { 输出解; } else { for(int i=1;i<=尝试方法数;i++) if(满足进一步搜索条件) { 为进一步搜索所需要的状 ...
分类:
其他好文 时间:
2019-11-03 17:56:12
阅读次数:
74
之所以陷入不终止状态 是由于正则表达式出错 正则表达式引擎一直处于回溯状态 (回溯结束,程序可能终止,没去尝试) 当一个正则表达式占用浏览器上秒,上分钟或者更长时间时,问题原因很可能是回溯失控。 这个例子告诉我们,在写爬虫时,如果数据过多, 正则表达式一定要不能出错。 ...
分类:
其他好文 时间:
2019-11-02 14:00:35
阅读次数:
143
今天研究用回溯法解决八皇后问题,碰到了一个有趣的小问题。 看这篇随笔前,最好先看看我上一篇所写的 c++ 内存分配中一个有趣的小问题。 先看代码 运行出来后结果是这样的: 即每个结果的序号都是1,明显不符合我的意图。 之后就是寻找错误原因了,定位到这一段代码上: 打断点进行调试。 发现当执行Matr ...
分类:
编程语言 时间:
2019-11-01 20:45:50
阅读次数:
71
题目描述 编写一个程序,通过已填充的空格来解决数独问题。 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 空白格用 '.' 表示。 一个数独。 答案被标成红色。 Note: ...
分类:
编程语言 时间:
2019-10-30 22:50:18
阅读次数:
97
换根dp的通法:1.第一次扫描时,任选一个点为根,在“有根树”上执行一次树形DP,也就在回溯时发生的,自底向上的状态转移。 2.第二次扫描时,从刚才选出的根出发,对整棵树执行一次dfs,在每次递归前进行自上向下的推导,计算出换根后的解。 1.POJ3585 Accumulation Degree d ...
分类:
其他好文 时间:
2019-10-30 16:33:19
阅读次数:
91
KMP算法用于字符串匹配问题 原有一个主串T和一个要匹配字符串S 对S求next熟组然后进行较少回溯匹配 求next数组。也就是在S串匹配不正确时 进行回溯。 每个next数组指向前一个应该回溯对下标 然后进行匹配 对于每个不匹配字符串重新依据next数组匹配 ...
分类:
编程语言 时间:
2019-10-30 13:29:05
阅读次数:
82
首先我们可以容易地知道任意区间交换的顺序对答案没有影响. 所以我们可以按照区间的长度进行搜索. 又因为每一种长度的区间只能交换一次,所以我们可以进行剪枝. 对于当前搜索区间的长度$2^x$,我们可以对于每一个长度为$2^{x+1}$的区间,判断它是不是单调递增且相邻两数之间差$1$,如果不是,则打上 ...
分类:
编程语言 时间:
2019-10-30 00:04:39
阅读次数:
115