未理解透,鬼知道怎么A的
蒟蒻交了个乱猜贪心搞了10pts,一翻题解群佬乱舞,最后DP解决
$\exists i - next[i] <= j, f[j] = f[next[i]] $

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#define R(a,b,c) for(register int  a = (b); a <= (c); ++ a)
#define nR(a,b,c) for(register int  a = (b); a >= (c); -- a)
#define Max(a,b) ((a) > (b) ? (a) : (b))
#define Min(a,b) ((a) < (b) ? (a) : (b))
#define Fill(a,b) memset(a, b, sizeof(a))
#define Abs(a) ((a) < 0 ? -(a) : (a))
#define Swap(a,b) a^=b^=a^=b
#define ll long long#define ON_DEBUG#ifdef ON_DEBUG#define D_e_Line printf("\n\n----------\n\n")
#define D_e(x)  cout << #x << " = " << x << endl
#define Pause() system("pause")
#define FileOpen() freopen("in.txt","r",stdin);#else#define D_e_Line ;
#define D_e(x)  ;
#define Pause() ;
#define FileOpen() ;#endifstruct ios{template<typename ATP>ios& operator >> (ATP &x){x = 0; int f = 1; char c;for(c = getchar(); c < '0' || c > '9'; c = getchar()) if(c == '-')  f = -1;while(c >= '0' && c <= '9') x = x * 10 + (c ^ '0'), c = getchar();x*= f;return *this;}
}io;
using namespace std;const int N = 500007;char str[N];
int nxt[N];
int f[N], pos[N];
int main(){
//FileOpen();scanf("%s",str + 1);int len = strlen(str + 1);nxt[0] = -1;int j = 0;R(i,2,len){while(j != -1 && str[j + 1] != str[i]) j = nxt[j];nxt[i] = ++j;}f[1] = 1;j = 0;R(i,2,len){f[i] = i;if(pos[f[nxt[i]]] >= i - nxt[i]) f[i] = f[nxt[i]];pos[f[i]] = i;}printf("%d", f[len]);return 0;
}

转载于:https://www.cnblogs.com/bingoyes/p/11240752.html

Luogu3426 [POI2005]SZA-Template (KMP)(未完成)相关推荐

  1. P3426 [POI2005]SZA-Template(kmp、dp)

    解析 做出来了就是胜利! 个人感觉虽然我这个nxt树的码量会大一点,但是思路其实比较自然.(看题解区也有) 也是一个相当可取的做法. 现在来讲讲巧妙的dp做法. 考虑直接嗯设:fif_ifi​ 表示覆 ...

  2. luogu3426 [POI2005]SZA-Template 后缀树

    链接 bzoj不能auto https://www.luogu.org/problemnew/show/P3426 思路 这个要求的串一定是S的前缀和S的后缀. 转化一下 建立出来fail树(fail ...

  3. 2021春季每日一题【week6 未完结】

    目录 28. 实现 strStr()[KMP] 141. 周期[KMP 未完成] 91. 解码方法[未完成] 821. 跳台阶 363. 矩形区域不超过 K 的最大数值和[前缀和] 3412. 邻域均 ...

  4. 洛谷3426 [POI2005]SZA-Template 恶臭dp+kmp

    前言 做这道题时,我和巨神yxc在洛咕上看到了一篇代码奇短的题解,然后看解析,发现里面的证明都是"显然"."很简单",被臭到. 于是zyd和yxc爆肝了2h左右 ...

  5. 【POI2005】SZA-Template(KMP)

    传送门 题解: 首先可以确定答案是这个串的一个border,一个border能覆盖全串的条件就是所有border包含这个位置的右端点之间的最大间距不能超过这个border的长度. 可以建立nxt树来判 ...

  6. P3426 [POI2005]SZA-Template(kmp+dp)

    https://www.luogu.com.cn/problem/P3426 这题出得挺好的,代码量简洁但是却有一定思维量. 先说一下暴力做法,不难看出如果要完成这一工作,必然和前后缀有关,如果当前i ...

  7. [HNOI2008]GT考试[矩阵快速幂+kmp优化的dp]

    解题思路:假如说我们用f[i]表示长度为i的串能组合成无不吉利数字的组合的个数的话我们无法找到f[i]和f[i+1]的关系,就是我们下一位填某个数字会不会出现不吉利串,这就和你前面的串末尾于不吉利串重 ...

  8. MED-V桌面虚拟化之二配置Template Server(1)

    在前一篇博客中我们介绍了如何配置MED-V Server,为了让整个实验顺利的进行下去,我们还要搭建Template Server,用于镜像的制作.在这里我采用的是xp,总共要安装三个组件:VPC20 ...

  9. Luogu3375 【模板】KMP字符串匹配

    复习字符串ing KMP模板 #include <iostream> #include <cstdio> #include <cstring> #include & ...

最新文章

  1. 用微信点单 订餐系统打造属于个人的O2O外卖订餐行业商业平台
  2. [面试专题]Web缓存详解
  3. 史上最详细Docker安装Mysql 带每一步详图及解释 并教你Docker 打印容器日志!!!相信值得你的阅读!!!
  4. php jquery grid,jQuery Grid
  5. 面向对象三大特性: 封装
  6. [导入]设计模式初学者系列-工厂方法
  7. 51nod 1013快速幂 + 费马小定理
  8. WebAssembly实例之hello world
  9. Linux基础-编译安装Python
  10. 北航的计算机与技术专业如何,计算机科学与技术考研北航的这个专业怎么样
  11. python发微信消息_利用python实现微信消息自动提醒
  12. 可爱的小老鼠计算机教案,大班语言儿歌教案《小老鼠玩电脑》
  13. nvcc: command not found
  14. 视频编解码——编码流程介绍
  15. MATLAB在线工具
  16. 【报告分享】2021Q2中国线上高增长消费市场白皮书-魔镜市场情报 (附下载)
  17. 替换word中手动换行(软回车)为段落标记(硬回车)
  18. 传感器发展历史(详细)
  19. vba excel学习笔记-从单元格获取数据,修改数据
  20. 纯分享,自媒体必备工具合集

热门文章

  1. js计算金额精度问题--currency.js(2022.11.10 阴)
  2. 更多内容请移步GitHub
  3. 多目标优化中常用的绩效指标(Performance Indicator)(最全概括)
  4. 牛客算法周周练11A - 切题之路(阅读理解)
  5. ssh远程No route to host问题解决
  6. 《学习opencv》第四章1,2题(第二题详解,最切题)
  7. 使用CAPL 内置函数 memcpy 和memcmp 处理数组的若干问题
  8. python 串口示波器
  9. 北京联合大学计算机科学与技术分数线,北京联合大学录取分数线2021是多少分(附历年录取分数线)...
  10. docker 的安装以及简单centos镜像制作、启动