题面

luogu

Sol

\(sam\)然后树形\(DP\)

当时还不会拓扑排序的我

# include <bits/stdc++.h>
# define IL inline
# define RG register
# define Fill(a, b) memset(a, b, sizeof(a))
using namespace std;
typedef long long ll; template <class Int>
IL void Input(RG Int &x){
RG int z = 1; RG char c = getchar(); x = 0;
for(; c < '0' || c > '9'; c = getchar()) z = c == '-' ? -1 : 1;
for(; c >= '0' && c <= '9'; c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);
x *= z;
} const int maxn(2e6 + 5); int n, trans[26][maxn], fa[maxn], len[maxn], tot = 1, last = 1, size[maxn];
ll ans;
vector <int> edge[maxn];
char s[maxn]; IL void Extend(RG int c){
RG int np = ++tot, p = last; last = np;
len[np] = len[p] + 1, size[np] = 1;
while(p && !trans[c][p]) trans[c][p] = np, p = fa[p];
if(!p) fa[np] = 1;
else{
RG int q = trans[c][p];
if(len[p] + 1 == len[q]) fa[np] = q;
else{
RG int nq = ++tot;
len[nq] = len[p] + 1, fa[nq] = fa[q];
for(RG int i = 0; i < 26; ++i) trans[i][nq] = trans[i][q];
fa[q] = fa[np] = nq;
while(p && trans[c][p] == q) trans[c][p] = nq, p = fa[p];
}
}
} IL void Dfs(RG int x){
for(RG int l = edge[x].size(), e = 0; e < l; ++e)
Dfs(edge[x][e]), size[x] += size[edge[x][e]];
if(size[x] != 1) ans = max(ans, 1LL * size[x] * len[x]);
} int main(RG int argc, RG char* argv[]){
scanf(" %s", s), n = strlen(s);
for(RG int i = 0; i < n; ++i) Extend(s[i] - 'a');
for(RG int i = 2; i <= tot; ++i) edge[fa[i]].push_back(i);
Dfs(1);
printf("%lld\n", ans);
return 0;
}

最新文章

  1. C++ Primer Pluse_6_课后题
  2. 15款开源PHP类库
  3. opencl初探-sobel检测
  4. 使用行为树(Behavior Tree)实现网游奖励掉落系统
  5. CentOS 7 安装和配置JDK
  6. Plugin For KanColleViewer – Provissy Tools V1.0
  7. ReentrantLock获取、释放锁的过程
  8. 关于移动APP与Web APP的测试重点以及区别
  9. Web前端文件上传进度的显示
  10. 分布式锁与实现(一)——基于Redis实现 【比较靠谱】
  11. Elasticsearch系列(2):安装Elasticsearch(Linux环境)
  12. Mirror--如何对运行中的镜像端点更换证书
  13. 51Nod 1091 线段的重叠(贪心+区间相关
  14. H5 高德地图获取当前位置信息
  15. matplotlib + pandas绘图
  16. Python初学者第十二天 购物车程序小作业
  17. 【iOS开发之Objective-C】书签管理器项目
  18. Ceph介绍
  19. mysql之约束以及修改数据表
  20. 基于Qt搭建ROS开发环境

热门文章

  1. Ambiguous mapping found. Cannot map &#39;XXXController&#39; bean method
  2. 晦涩难懂的shell命令
  3. TX2 之tensorflow环境部署
  4. 函数直接写在html页面的&lt;script&gt;里可以调用,但是单独放在js文件里不能调用
  5. python全栈开发_day13_迭代器和生成器
  6. [转] Actor生命周期理解
  7. 使用webpack &amp;&amp; react环境
  8. smarty 教程 及 常用点
  9. DiagnosticFormatter
  10. 【Qt开发】QTime类