首页 > 其他分享 >SAM复健

SAM复健

时间:2022-12-12 21:59:16浏览次数:56  
标签:复健 子串 SAM endpos 长度 数量

关于其原理和构造啥的先不说,理解性默写就行。

对着题单开始乱水。

P2408不同子串个数

需要知道关于 SAM 的性质是,相同的子串会被去重。

所以只需要知道 SAM 上不同路径的数量就行。

所以 \(f_{u}=\sum _{v \in son} f_v+1\)

CF802I Fake News (hard)

求所有不同的子串出现次数的平方和。

首先,在 parent tree 上,所有的不同子串都能被表示(废话)

在一个状态下,这个状态能包涵的子串数量就是最小长度到最大长度的值。

最小长度不直接记录,但是它是 father 的最大长度 +1。

然后是出现次数。

一个状态下所有子串的出现次数相同,就是 endpos 的数量。endpos 的数量就是其子树下的所有的 endpos 的和。叶子节点为 \(1\)。

在建 SAM 的过程中每次最先建出的点就是 parent tree 上的叶子节点。

[TJOI2019]甲苯先生和大中锋的字符串

知道上一个题怎么做的这题就很简单了(我还没写)

正好出现 \(K\) 次就是 endpos 为 \(K\) ,然后长度数就是一个状态下的最小长度和最大长度之间的部分,这个可以差分维护数量。


未完待续。

标签:复健,子串,SAM,endpos,长度,数量
From: https://www.cnblogs.com/cc0000/p/16977194.html

相关文章

  • C. Hossam and Trainees_分解质因数
    C.HossamandTrainees太久没登博客园了密码都忘记了...题目大意给n个数,问能不能找到一个x使得x整除其中的任意两个数。思路这题的解法很快就想出来了,就是直接每个数......
  • fluentd中,sample输入插件的作用是什么?
    in_sample输入插件的作用是什么? sample输入插件,用来产生样本事件。主要用于:测试,调试,和压力测试。这个插件,包含在fluentd的核心代码中sample是由dummy插件而......
  • 加入域出问题:An account with the same name exists in Active Directory, re-using t
    如果windows11安装了 October11,2022的安全补丁​​KB5020276​​—Netjoin:Domainjoinhardeningchanges,如果域里有同名的计算机名,再加入域里会出现错误:Anaccoun......
  • MySQL进阶实战9,InnoDB和MyISAM的数据分布对比
    一、InnoDB存储引擎InnoDB的数据存储在表空间dataspace中,由很多数据文件组成。InnoDB采用MVCC来支持高并发,实现了四个标准的隔离级别。其默认级别是可重复读repeatablerea......
  • MySql存储引擎InnoDB和MyISAM
    MySql存储引擎MyISAM:拥有较高的插入,查询速度,但不支持事务InnoDB:5.5版本后Mysql的默认数据库,事务型数据库的首选引擎,支持ACID事务,支持行级锁定mysql的底层使用b+树来存储索......
  • 再谈汤普森采样(Thompson Sampling)
    相关:【转载】推荐算法之Thompson(汤普森)采样【转载】推荐系统EE问题与Bandit算法 python语言绘图:绘制一组beta分布图转载:beta分布介绍   =============......
  • 容器部署samba服务
    samba服务的容器镜像:elswork/sambadockerhub页面:https://hub.docker.com/r/elswork/sambadockercompose部署samba---dockernetworkcreatedocker_networkc......
  • win10 登录 Samba
    Samba 1. 选择一个空闲的驱动器(默认即可),填入"\计算云IP地址\用户名",点击完成在弹窗中输入设置的用户名和密码(samba密码)  2.然后输入用户名密码即可 ......
  • paddle 错误(ValueError: all input arrays must have the same shape)
    参考:voc数据集执行eval.py命令报错·Issue#3456·PaddlePaddle/PaddleDetection(github.com)配置文件加这两行:EvalReader:collate_batch: false......
  • Samba服务配置
    安装samba软件包:[root@w~]#yuminstallsamba-y创建系统用户:[root@w~]#useraddwww配置samba共享文件smb.conf:[root@w~]#vim/etc/samba/smb.conf#最后一行添加[www]......