【KMP-fail树】51Nod1277[字符串中的最大值]题解
来源:互联网 发布:linux 文件名上传名称 编辑:程序博客网 时间:2024/05/18 01:41
题目概述
给出一个字符串S,求其所有前缀中,字符长度与出现次数的乘积的最大值。
解题报告
KMP的
那么会发现一些性质:节点
示例程序
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;const int maxl=100000;int len,fa[maxl+5],si[maxl+5];char s[maxl+5];LL ans;int main(){ freopen("program.in","r",stdin); freopen("program.out","w",stdout); scanf("%s",s+1);len=strlen(s+1);fa[1]=0; for (int i=2,j=0;i<=len;i++) { while (j&&s[j+1]!=s[i]) j=fa[j]; if (s[j+1]==s[i]) j++;fa[i]=j; } for (int i=len;i>=1;i--) { si[i]++;ans=max(ans,(LL)si[i]*i); si[fa[i]]+=si[i]; } return printf("%lld\n",ans),0;}
阅读全文
0 0
- 【KMP-fail树】51Nod1277[字符串中的最大值]题解
- [KMP fail树] 51nod1277 字符串中的最大值
- 51nod1277 字符串中的最大值(KMP)
- KMP——51nod1277 字符串中的最大值
- 【51Nod1277】字符串中的最大值
- 51NOD1277 字符串中的最大值
- [KMP next树] 51Nod 1277 字符串中的最大值
- 【KMP next树】51nod 1277 字符串中的最大值
- 51nod 1277 字符串中的最大值【KMP算法】【next树】
- 51nod-1277 字符串中的最大值(KMP)
- kmp-51nod 1277 字符串中的最大值
- 51 nod 1277 字符串中的最大值(KMP)
- 51nod 1277 字符串中的最大值(KMP)
- 51NOD 1277 字符串中的最大值 【拓展KMP】
- 51nod 1277 字符串中的最大值(kmp)
- 1277 字符串中的最大值 (kmp)
- 【Kmp求字符串前缀在字符串出现的次数】51nod 1277 字符串中的最大值
- 51Nod 1277 字符串中的最大值 KMP next数组经典应用
- 金融科技&大数据产品推荐:恒丰银行家庭金融系统
- 倚天剑:apache-common-collections
- 记:破解MFC小程序03
- 堆排序和建立最大堆
- php的页面跳转方式
- 【KMP-fail树】51Nod1277[字符串中的最大值]题解
- 格式化代码格式,类里面导入同一包下类时,格式化时候 * 变成了具体类名。
- C语言恐怖水母问题(冒泡排序)
- DI与HTTPClient
- SourceTree账号
- 猜数字
- Java多线程基础概念
- 《剑指offer》刷题笔记(举例让抽象具体化):包含min函数的栈
- HDPCD-Java-复习笔记(22)- lab