社区讨论

KMP自动机的转移边数是2n???

学术版参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lobs3zvf
此快照首次捕获于
2023/10/30 02:02
2 年前
此快照最后确认于
2023/11/04 06:33
2 年前
查看原帖
先抱歉标题党qwq请大佬们帮忙看看有没有假
KMP自动机指的是:KMP中预处理 每个位置后添加每个字符转移到的位置,可用于一些 DPDP 题。
题意:注意到很多转移边都会指回 00,认为这些边是平凡的,求非平凡转移边数量上界。

did_iii 在失配树上的深度,cic_i 表示 ii 的转移边数量。由于 nn 自身不能向后添加字符,故有 cndn1c_n\le d_n-1
对于 0i<n0\le i<n,有显然结论:i+1i+1 的祖先(00 除外)减一均为 ii 的祖先。因此我们将 ii 的祖先按照下一个字符分类(每一类对应一条转移边),只有一类被全部继承给 i+1i+1,其他类都被全部抛弃了。i+1i+1 自己还会凭空生出一个 00 作为祖先,因此有 ci1didi+1+1c_i-1\le d_i-d_{i+1}+1(每一类至少有一个元素)。
综上,答案为 i=0nci(dn1)+i=0n1didi+1+22n+dn1+d0dn=2n\sum_{i=0}^{n}c_i\le (d_n-1)+\sum_{i=0}^{n-1}d_{i}-d_{i+1}+2\le 2n+d_n-1+d_0-d_n=2n

回复

0 条回复,欢迎继续交流。

正在加载回复...