摘要:
1. 找样本文章好辛苦啊,都没有批量下载,要一篇一篇下载,找到一个630多篇英语小说的网站,现在还有160多篇没下载。但没有办法了,要研究必须先要有样本数据。 2. 终于解出了a^logb(n) <==> n^logb(a)的转换方式。 阅读全文
摘要:
1.刚做了一道动态规划题,题目很明显是在教育动态规划。把已经有的复杂递归函数给出,然后要求在限定时间内求解,使用那函数是不可能在限定时间内求解的,因为递归非常深。然后使用动态规划却可以在0MS内解决,更重要的是,在构造动态规划矩阵的过程中,使用的计算公式跟递归公式一模一样,这就给了一个启示。对于复杂问题,如果能求出递归公式,则先求出递归公式,然后转换成动态规划矩阵! 2.刚又做了一经典题目,求N... 阅读全文
摘要:
1. 今日做PKU的一道最大流的题目,没有学过最大流的标准算法,靠自己的想法,不知道能不能过。不过我不想用递归实现,但发现非尾递归的解递归好难。当找到递归出口还,回溯过程比较繁琐。不过可以肯定,如果要解非尾递归,则必须在栈中保存之前的入栈项。 2. 晕,原来我的红黑树一直是线性树,一直都没有发现,因为在非递归的中序遍历中,发现总是入栈N-1个节点才开始回溯,我才从调试中发现这个问题!!原因在于第... 阅读全文
摘要:
1. 原来在C++的析构函数中是不能再分配堆内存,否则会导致异常。我这样做的原因是我写红黑树结构,在析构时要先析构所有内部树节点,但这个过程如果不想用递归方式的话,则需要一个分配一个栈来完成解除递归的操作。啊~我搞错了,原来没有这回事,真正导致异常的原因是我采用了空节点,这个空节点在递归过程被释放内存了,而且被释放了很多次,因为所有没儿子节点的地方都是链接到这个空节点。我的解决方法是在把左右子节点... 阅读全文
摘要:
1.今天一大早就继续看HAKMEM,发现了一条公示:(A | B) + (A & B) === A + B === (A^B) + ((A&B)<<1),我马上有个感觉,这个公式可以优化加法运算,然后就在我那台单核1.7G主频CPU的笔记本上开始了实验,不过结果非常不稳定,三中加法代码各自都有比较快的时候。不过当我把运算次数调到300亿次(回到家才发现溢出了,没有300... 阅读全文
摘要:
1.今天对分词函数做了优化,原来的分词函数记录了扫描过程中单词在输入字符串中的起始位置和结束位置,并调用标准库的substr函数从输入字符串中获取单词。但我新增了一个功能,就是通过一个bool指示变量来决定是否需要区分大小写,在这个背景下使用substr效率太低,因为我调用该函数,获取一个string,然后又要对这个string进行大小写转换生成另一个string;出现这个情况是因为无法干涉sub... 阅读全文