
Z-Box算法
Mys_C_K
人生有许多道:曾经踏足的是道,即将踏往的也是道,那什么才是道呢?唯有脚下走的才是道。一切精神或者物质都归于虚无,然后从混沌中衍生出三万道。在悲喜间涉足一条无数前人经历过,且将有无数后人奔赴的道,无论是否已经或者将要到达彼岸,然后便不再回头或是左顾右盼,即使有些道繁盛至极,夜灯如昼,无数人一浪又一浪的涌去,造就了世人皆知的辉煌;即使有些道草木凋敝,荒草丛生,只等勇敢的开拓者斩开荆棘,创造一片天地;这些都无所关,无所在意,彼岸何如、来日何方甚至过往旧事都化作一缕云烟,飘渺碧霄,我自撷高山之月色,独随足落处往行。
展开
-
[学习笔记] Z-Box算法
网上多得是,直接上代码:#include#include#include#include#define N 1000010using namespace std;char s[N];int z[N],n;int main(){ scanf("%s",s+1);n=strlen(s+1); for(int i=2,l=1,r=0;i<=n;i++) {原创 2018-02-04 13:50:06 · 519 阅读 · 0 评论 -
codeforces 126B Password - Z-Box算法
传送门 题解:Z-Box算法模板题#include#include#include#include#define N 1000010using namespace std;char s[N];int z[N],n;int main(){ scanf("%s",s+1);n=strlen(s+1); if(n3) return !printf("Just a原创 2018-02-04 13:51:48 · 355 阅读 · 0 评论 -
codeforces 536B Tavas and Malekas - Z-Box算法
传送门 题解:模板题#include#include#include#include#define mod 1000000007#define N 1000010#define lint long longusing namespace std;char s[N];int z[N],n,x[N],cnt[N];inline bool can(int x,int y){原创 2018-02-04 13:53:24 · 418 阅读 · 0 评论 -
codeforces 100792B Banana Brain's Bracelet Z-Box算法 - 线段树
传送门 题目大意:给一个循环串A,和一个字符串C,从A中截下一段B,并将B首尾相接成一个循环串使得C是B的一段。求使|B|最大。 题解:首先把A翻倍拼接得到S,前面放C,求一遍Z-Box,然后把S和C翻过来再求一遍,分别得到z1和z2。然后有两种情况,要么C是S的子串,输出|A|,要么C=C1+C2,然后S中出现了C2,隔了一段出现了C1,即C2….C1,需要满足总长度=|C|-z1[i]。这原创 2018-02-04 20:02:44 · 405 阅读 · 0 评论