[BZOJ4310] 跳蚤 SAM || SA
没有代码的。
先二分出第 \(mid\) 大的字串 \(s\),然后从后往前切割,每次大于 \(s\) 了就不行。
涉及到的操作:求第 \(mid\) 大子串;比较两个字串(求 \(lcp\))。
SAM:\(mid\) 大子串随便求。求 \(lcp\)?
- 二分+字符串哈希?莫名其妙多个 \(log\),而且字符串哈希以前没实现过啊QAQ
- 再建一个反串SAM在parent树上求LCA?太麻烦了吧。。而且用RMQ \(O(1)\) 求LCA也没实现过啊QAQ
SA:感觉挺好的,求第 \(mid\) 大字串是模板,\(lcp\) 的话 \(height\) 数组求个RMQ就行了。但我没实现过啊????
后缀三姐妹都可以搞,但我啥都搞不出来??
自闭了,我可活个什么劲儿,感觉随便写哪个都是调半天的节奏。。我还是继续当我的嘴巴口胡选手吧。。。
代码能力确实需要锻炼,没实现过的也要去实现一下。但现在还是先咕咕咕吧(大雾
(喂你怎么这么颓废!!)
[BZOJ4310] 跳蚤 SAM || SA的更多相关文章
- [BZOJ4310] 跳蚤 - 后缀数组,二分,ST表
[BZOJ4310] 跳蚤 Description 首先,他会把串分成不超过 \(k\) 个子串,然后对于每个子串 \(S\) ,他会从 \(S\) 的所有子串中选择字典序最大的那一个,并在选出来的 ...
- Codeforces 873F Forbidden Indices 字符串 SAM/(SA+单调栈)
原文链接https://www.cnblogs.com/zhouzhendong/p/9256033.html 题目传送门 - CF873F 题意 给定长度为 $n$ 的字符串 $s$,以及给定这个字 ...
- BZOJ4310: 跳蚤 【后缀数组+二分】
Description 很久很久以前,森林里住着一群跳蚤.一天,跳蚤国王得到了一个神秘的字符串,它想进行研究.首先,他会把串 分成不超过 k 个子串,然后对于每个子串 S,他会从S的所有子串中选择字典 ...
- BZOJ4310 跳蚤(后缀数组+二分答案)
注意到答案一定是原串的子串,于是考虑造出SA,二分答案是第几小的子串.第k小子串很容易在SA上求出.之后计算使他成为最大子串至少要在几个位置切割,对每个字典序比答案大的后缀,找到所有合法切割位置(求l ...
- spoj SUBST1 - New Distinct Substrings【SAM||SA】
SAM里的转台不会有重复串,所以答案就是每个right集合所代表的串个数的和 #include<iostream> #include<cstdio> #include<c ...
- BZOJ4310 : 跳蚤
首先求出后缀数组,得到本质不同的子串的个数. 然后二分答案,每次先通过后缀数组求出第$mid$小的子串,然后贪心进行检验. 检验的时候,从后往前贪心,每次加入一个后缀,如果不能加了,那就划为一段. 时 ...
- 【算法】后缀自动机(SAM) 例题
算法介绍见:http://www.cnblogs.com/Sakits/p/8232402.html 广义SAM资料:https://www.cnblogs.com/phile/p/4511571.h ...
- THUWC2018 题解
2018清华冬令营 又一次由于接连而至的玄学现象跪惨,错失良机,就不再公开提我这次惨痛的经历了,写点干货-- day1 A 零食 (1s, 1G) 试题简述 \(n\) 种物品1,\(m\) 种物品2 ...
- HDU6599:求本质不同的子串(回文串)长度及数量
目录 hdu6599题意: manacher+后缀自动机+倍增 \(O(nlog(n))\) manacher+后缀数组+二分 \(O(nlog(n))\) 回文树(回文自动机) \(O(n)\) @ ...
随机推荐
- 阿里云Centos操作Mysql
1. CentOS7 yum方式安装MySQL5.7 2.Centos下mysql导入sql 3.Centos设置远程 4.CentOS下mysql数据库常用命令总结 5.centos出现“Fire ...
- GIT原理介绍
Git 是一套内容寻址文件系统.很不错.不过这是什么意思呢? 这种说法的意思是,Git 从核心上来看不过是简单地存储键值对(key-value).它允许插入任意类型的内容,并会返回一个键值,通过该键值 ...
- Solidity 编程实例--投票
Voting 投票 思路是为每张选票创建一个合约,每个投票选项提供一个短名称.合约创建者作为会长将会给每个投票参与人各自的地址投票权. 地址后面的人们可以选择自己投票或者委托信任的代表人替他们投票.在 ...
- 报错com.neenbedankt.android-apt not found如何解决
apply plugin: 'com.neenbedankt.android-apt' 在moudle中build.gradle文件内有应用此插件,编译时报错 检查Project中build.grad ...
- JS中的排序算法-冒泡排序解析
冒泡排序算法 例子:10,8,9,6,4,20,5 从小到大排序 第一轮 1)10>8 交换数据 得到:8,10,9,6,4,20,5 2)10>9 交换数据 得到:8,9,10, ...
- 使用FastReport报表工具生成报表PDF文档
在我们开发某个系统的时候,客户总会提出一些特定的报表需求,固定的报表格式符合他们的业务处理需要,也贴合他们的工作场景,因此我们尽可能做出符合他们实际需要的报表,这样我们的系统会得到更好的认同感.本篇随 ...
- 使用Jmeter并发websocket协议项目
1.安装Jmeter 网址:http://jmeter.apache.org/下载 2.启动Jmeter \apache-jmeter-5.1.1\bin\jmeter.bat 3.安装‘Plugin ...
- java的动手动脑10月20日
(1)动手动脑 该函数没有赋初值再就是如果类提供一个自定义的构造方法,将导致系统不在提供默认的构造方法. (2) public class test { /*** @param args*/publi ...
- 计算几何基础算法几何C++实现
This file is implementation of Common Common Computational Geometry Algorithms.Please please pay att ...
- dll劫持破坏360
0x01 前言 说起DLL劫持技术,相信大家都不会陌生,因为这种技术的应用比较广泛,比如木马后门的启动.破解程序的内存补丁.外挂插件的注入以及加密狗的模拟等.之所以DLL劫持技术深受黑客们的喜爱,主要 ...