从前面的文章中,我们已经了解到了缓存设计的目标,缓存设计应该考虑的因素。今天我们来看看一系列缓存算法以及它们如何去解决问题的。同时,我们也会涉及到各种缓存算法的优缺点。这里我并不想讨论与预取(pre-fetch)相关的算法,主要是考虑各种淘汰算法。因为相比于预取算法,淘汰算法具有更大的通用性,对缓存...
分类:
其他好文 时间:
2014-06-28 11:45:02
阅读次数:
297
题目给出一个长为2000的字符串,和10000询问,每次询问从第l到第r个字符中间有多少个不同的子串。其实,全部预处理。f[i][j]表示从i到j个字符的子串数。重构2000遍SAM。对于新加入的字符,其所对应的last点,新增加的新子串数位step[last]-step[pre[last]]。原因...
分类:
其他好文 时间:
2014-06-23 07:14:40
阅读次数:
220
题目意思是给你一个字符串,f[x]是长度为x的子串中,出现个数最多的那个串的出现次数。给出原串,依次输出f[1],f[2],……。后缀自动机。对于某一个状态,right[]值的大小就是出现的次数,而且是对于长为step[]的子串的出现次数。因为小于step值的串在前面已经加了,在pre指针线上面的状...
分类:
其他好文 时间:
2014-06-23 07:14:18
阅读次数:
254
和上个题目差不多,这次是找若干个串的LCS,若干#include #define maxn 200100using namespace std;int next[maxn][26],pre[maxn],step[maxn];int f[13][maxn];int N=0,last=0,n=1;int...
分类:
其他好文 时间:
2014-06-20 18:49:21
阅读次数:
153
经典题目,求两个串的最长公共子串。是这样来做的。以第一个串构造SAM,第二个串在自动机上跟新一遍就可以了。更新的过程是这样的,假设当前到达的状态点为x(初始状态为0点),下一个字符是c,如果当前状态没有c这条边就一直沿着pre指针走,直到找到第一个有c这条边的状态或者确认全部都没有。更新是这样的,用...
分类:
其他好文 时间:
2014-06-20 18:40:05
阅读次数:
207
可以参考http://nginx.org/en/linux_packages.html#stable下面内容是摘抄自上链接的文章Pre-Built Packages for Stable versionAlternatively, a repository configuration can be ...
分类:
其他好文 时间:
2014-06-20 17:01:45
阅读次数:
242
Chrome Timeline的指标说明:Blocked、Connect、Send、Wait、Receive Blocked time includes any pre-processing time (such as cache lookup) and the time spent waiting...
分类:
其他好文 时间:
2014-06-20 15:07:33
阅读次数:
277
加上type="pre"(表示在执行insert之前获取主键)后台输出sql在log4j.properties中配置log4j.logger.java.sql=DEBUG,console今天在用ibatis selectKey 生成 oracle sequ...
分类:
其他好文 时间:
2014-06-18 16:48:58
阅读次数:
269
处理这个问题还是挺复杂的,需要考虑很多边界的测试用例。我总体的思路是先用循环标记m前一个节点和n后边一个节点,把n后边的节点首先作为当前逆转节点的pre,然后循环n-m次完成所选节点部分的逆序,然后将标记的m节点前一个节点指向逆序后部分的头节点即可。要考虑各种特殊情况,另外考虑即可。code如下:...
分类:
其他好文 时间:
2014-06-15 13:44:17
阅读次数:
323
gcc 命令的使用
在使用GCC编译程序时,编译过程可以被细分为四个阶段:
预处理(Pre-Processing) 编译(Compiling) 汇编(Assembling) 链接(Linking)
如果不加任何参数, gcc 默认执行所有的操作,直接生成可执行文件。
以上四个阶段对应参数为:
1. -E 只执行预处理
2. –S 只编译,不汇...
分类:
数据库 时间:
2014-06-14 13:28:23
阅读次数:
359