LCA
最近共同祖先 看题 从1到n标号的城市,m条含有权重边,c次询问任意两城市之间的最小加权路径 思路 不是一棵树(这里应该是环)上的,思路很简单,用并查集即可判断 同一棵树上的,可以采用 Tarjan 离线算法 核心伪代码 for(int i = 1;i <= n;i++) { if(!vis[ »
最近共同祖先 看题 从1到n标号的城市,m条含有权重边,c次询问任意两城市之间的最小加权路径 思路 不是一棵树(这里应该是环)上的,思路很简单,用并查集即可判断 同一棵树上的,可以采用 Tarjan 离线算法 核心伪代码 for(int i = 1;i <= n;i++) { if(!vis[ »
环境 个人电脑 win10、jdk1.8.0_121、idea2.6.2、rocketmq4.0.0-incubating、mvn3.3.9 下载源码 一开始下载rocketmq的源码3.5.8,但是导入idea编译报错 Error:(34, 8) java: com. »
关于chlang 这是个玩具解释器,通过完成它学习了许多关于编译器前端的知识点 github地址 本来这是个c语言项目,由于c语言实现实在过于繁琐,遂弃坑转为java,采用maven的项目管理结构 本语言主要参考了《自制编程语言》、c4的源代码 本文更新于2017.06.21 词法分析 词法分析器所在代码 主要有三个java文件构成,不讲一些自动机相关知识,默认已知 TOKEN_TYPE.java 主要描述符号类型,带有RW开头的表示Reserved Word,也就是保留关键词 »
问题 最近在写一个解释器,碰到一个关于控制流程问题,有感而发 起初我按照bnf范式写了一堆生成抽象语法树的代码,在eval.java中准备从tree root出发进行遍历计算每一个表达式(解释语句)。其中有一个核心函数recursionEvalAstNode每次递归传入每个节点(的子节点)。所以函数这个参数就是树上的节点parentAstNode。那么问题来了 包含一些控制流程的语句(break、continue、return,但if不是很明显) 比如说的return statement,一旦执行到这里,就应该退回wrap-function执行的地方,并把返回节点interpret result(可能是含有子节点的expression节点)存储在栈或者寄存器里" »
用法 泵定理(pumping lemma):判断一个语言不是正则语言,通常使用反证法(泵引理是RL语言的必要条件) 原理 设\( L \) 是一个RL,则存在仅依赖于\( L \)的正整数\( P \) 对于\( \forall w \in L \), 如果\( |w| \ge P \),则存在\( x, »
首先推荐一款linux下的mysql客户端mycli mysql里面有很多日志,如bin日志用来恢复数据,慢查询日志用来监控查询较慢的数据 只记了通用日志的开启方式,其他的日志都是类似命令 mysql root@localhost:(none)> show global variables like '%gener%'; +------------------+--------------------------------------------+ | Variable_name | Value | |------------------+--------------------------------------------| | general_ »
COMMON块 大部分教材,或者Blog都会讲到c系语言中未初始化的全局变量或静态变量的内存空间是在.bss段 今天就来测试一下,gcc/g++的版本如下 chainhelen@iZwz92pw32r9w6beu4jlfpZ:~$ gcc --version gcc (Ubuntu 5.4.1-2ubuntu1~14.04) 5.4.1 20160904 chainhelen@iZwz92pw32r9w6beu4jlfpZ:~$ g+ »
正则表达式 定义 : 正则表达式可以描述所有通过对某个字母表上的符号应用并、连接、闭包运算而得到的语言;可以用正则表达式定义的语言叫做正则集合 性质 : 如果两个正则表达式 r 和 s 表示同样的语言,则称 r 和 s等价 遵循一些代数性质 定律 描述 \( r | s = s | r \) | 是可以交换 \( r|(s| »