摘要: 经典题目:给一个字符串,求字典序第k小的子串是什么。涉及子串问题,上自动机。首先我们可以用记忆化搜索的方法,求出到达某一个状态后,能产生多少个新状态。首先,到达这个状态就不走了,这肯定是一种状态,然后分别考虑后面的26个指针就好了。不过如果不记忆化肯定是要T的,而且如果用dp好像会有一点问题,因为状... 阅读全文
posted @ 2014-06-19 13:56 092000 阅读(525) 评论(0) 推荐(0) 编辑
摘要: 和上个题目差不多,这次是找若干个串的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... 阅读全文
posted @ 2014-06-19 13:50 092000 阅读(575) 评论(0) 推荐(0) 编辑
摘要: 经典题目,求两个串的最长公共子串。是这样来做的。以第一个串构造SAM,第二个串在自动机上跟新一遍就可以了。更新的过程是这样的,假设当前到达的状态点为x(初始状态为0点),下一个字符是c,如果当前状态没有c这条边就一直沿着pre指针走,直到找到第一个有c这条边的状态或者确认全部都没有。更新是这样的,用... 阅读全文
posted @ 2014-06-19 13:37 092000 阅读(321) 评论(0) 推荐(0) 编辑