随笔分类 - 字符串
摘要:定义 哈希,是一个十分无脑判断某两端字符串相同的方法(当然为了把保守我们也可以使用pb_ds库里的gb_hash_table)。 我通常使用哈希方法是 \(f(x)=f(x-1)\times b+s_x\) 。 转化成多项式形式那也就是: \[f(x)=\sum_{i=1}^{x}s_i\times
阅读全文
摘要:简介 定义一个长度为 \(n\) 的字符串 \(s\),定义 \(z_i\) 表示 \(s\) 和 \(s[i,n]\) 的 \(lcp\)(最长公共前缀),称 \(z\) 为 \(s\) 的 \(Z\) 函数。 朴素算法 暴力枚举,时间复杂度:\(O(n^2)\) 线性算法 我们首先考虑顺次处理
阅读全文
摘要:从某种方面来说,Manacher 算法是朴素 \(O(n^2)\) 暴力算法的优化。。。 那就得先了解一下 Manacher 的朴素算法 朴素算法 枚举中心点并不断向外展开(例如:\([i,i]\rightarrow [i+1,i+1]\rightarrow [i+2,i+2]\rightarrow
阅读全文
摘要:求最长公共前后缀(前置知识) for(int i=2,k=0;i<=m;i++) { while(k&&t[k+1]!=t[i])k=nxt[k]; if(t[k+1]==t[i])k++; nxt[i]=k; } 这种比较有性质的东西,推一推就懂了(感觉比较简单)。就是利用之间处理好的border
阅读全文

浙公网安备 33010602011771号