本题是KMP的next数组的灵活运用。
具体就是看最后整个数列的最后一个字母,能有多少前缀。
理解了next数组就很容易了。
#include
#include
#include
using std::vector;
const int MAX_N = 400001;
char name[MAX_N];
int next[MAX_N], len;
void genNext()
{
...
分类:
其他好文 时间:
2014-08-12 17:16:54
阅读次数:
237
KMP的应用,不过查找的时候注意一点就够了:查找到一个子串的时候,直接跳过整个串,而不是使用next数组前跳,因为根据题意需要剪出小饰条,小饰条之间不能重叠。
const int MAX_N = 1001;
char txt[MAX_N], pat[MAX_N];
int next[MAX_N], len;
void genNext()
{
for (int i = 1, j = 0...
分类:
其他好文 时间:
2014-08-12 17:11:34
阅读次数:
197
题目一:Populating
Next Right Pointers in Each Node
Given a binary tree
struct TreeLinkNode {
TreeLinkNode *left;
TreeLinkNode *right;
TreeLinkNode *next;
}
Popul...
分类:
其他好文 时间:
2014-08-12 09:03:43
阅读次数:
201
http://msdn.microsoft.com/en-us/library/ewwyfdbe%28v=vs.71%29.aspxNoteAn unnamed bit field of width 0 forces alignment of the next bit field to the ne...
分类:
编程语言 时间:
2014-08-12 00:19:13
阅读次数:
296
# include
# include
# include
using namespace std;
int n,m,next[10010],a[1000010],b[10010];
void Getnext()
{
int i=0,j=-1;
next[0]=-1;
while(i<m)
{
if(j==-1||b[i]==b[j])
...
分类:
其他好文 时间:
2014-08-11 21:27:33
阅读次数:
240
//单链表的合并
//链表合并
//两个链表必须是有序的
#define Maxsize 5
typedef int elemtype;
typedef struct linklist
{
elemtype data;
struct linklist *next;
}Linklist;
//建立链表1
Linklist *CreateList1 ()
...
分类:
其他好文 时间:
2014-08-11 21:25:52
阅读次数:
346
1.周五对nodejs tcp长连接服务器框架进行压测,一切开始比较常规(没什么特殊问题)。2.突然手一哆嗦,把压测用的客户端群一起关闭了。3.这个时候nodejs的服务器爆出了"Caughtexception:Error:readECONNRESET"。4.这个以前做linux服务器时候见过(忽略...
分类:
其他好文 时间:
2014-08-11 17:34:02
阅读次数:
188
1 #include 2 #include 3 4 using namespace std; 5 6 ///通过嵌套实现元则 7 template 8 class my_tuple 9 {10 public:11 T value;12 N next;13 my_tupl...
分类:
其他好文 时间:
2014-08-11 17:23:52
阅读次数:
188
Problem Description
The Leiden University Library has millions of books. When a student wants to borrow a certain book, he usually submits an online loan form. If the book is available, then the next...
分类:
其他好文 时间:
2014-08-11 15:05:42
阅读次数:
274
使用KMP寻找最长的前缀的方法,比一般的暴力法有快了很多。
本题一般的暴力法需要的是O(m*n*n*n),其中m是有多少字符串,而n是字符串长度,而使用KMP就可以把时间效率提高到O(m*n*n),减少了一个n,提高了一个档次啦。
速度快很多。
准确来说应该是利用KMP寻找一个字符串A,在另一个字符串B任意位置出现的A的最长的前缀字符串。
理解好KMP的next table就好办了。每次查找到相等字符的时候,保存好最长的前缀。
注意本题的条件:选取最前的字典顺序输出。老害我错的条件。...
分类:
其他好文 时间:
2014-08-11 12:01:02
阅读次数:
250