CF873F - Forbidden Indices
题意:对于一个字符串 \(S\),有一些位置是被 \(\text{Ban}\) 掉的。 对于这个字符串的所有子串,它的分数是(长度 \(\times\) 在没有被 \(\text{Ban}\) 掉的位置结尾的次数),求最大分数。
首先考虑 \(\text{SAM}\),我们在 \(\text{SAM}\) 上维护当前的 \(\text{endpos}\) 集合中有多少个是被 \(\text{Ban}\) 掉的,这个可以和 \(\text{size}\) 一样通过最后 \(\text{dfs}\) 一遍找出来。然后当前点的权值就是(当前点的 \(\text{len}\) $\times \(((\)\text{size}-$ 被 \(\text{Ban}\) 掉的个数))。可以直接暴力 \(\text{SAM}\) 求出来。\(\text{Best Code by LiHC}\)
有 \(\text{SAM}\) 的地方就有 \(\text{SA}\),\(\text{SAM}\) 能轻松解决的,倒过来求一下 \(\text{LCP}\) 一样可以解决。
我们可以用并查集维护每一个后缀,在维护并查集的同时,维护当前集合中没有被 \(\text{Ban}\) 掉的后缀的个数。每次合并 \(\text{LCP}=i\) 的相邻两个位置,\(i\) 从大到小枚举,可以保证 \(\text{LCP}>=i\) 的部分全部合并完之后,每一个集合中所有的后缀都有长度为 \(i\) 的 \(\text{LCP}\),也就替代了 \(\text{SAM}\) 的作用。然后当前子串长度就是 \(i\),出现次数就是所有并查集中,没有被 \(\text{Ban}\) 掉的后缀个数的最大值。就可以用 \(\text{SA}\) 替代 \(\text{SAM}\) 完成这一任务。\(\text{Best Code by KrK}\)
CF873F - Forbidden Indices的更多相关文章
- CF873F Forbidden Indices 后缀自动机+水题
刷刷水~ Code: #include <cstdio> #include <cstring> #include <algorithm> #define N 200 ...
- 【CF873F】Forbidden Indices 后缀自动机
[CF873F]Forbidden Indices 题意:给你一个串s,其中一些位置是危险的.定义一个子串的出现次数为:它的所有出现位置中,不是危险位置的个数.求s的所有子串中,长度*出现次数的最大值 ...
- CF873F 【Forbidden Indices】
还有这么板子的题? 和你谷上后缀自动机的板子基本一样,区别就是之后这个位置是\(0\)才计入贡献 代码 #include<iostream> #include<cstdio> ...
- Codeforces 873F Forbidden Indices 字符串 SAM/(SA+单调栈)
原文链接https://www.cnblogs.com/zhouzhendong/p/9256033.html 题目传送门 - CF873F 题意 给定长度为 $n$ 的字符串 $s$,以及给定这个字 ...
- edu30F. Forbidden Indices
题意:给你一个字符串s有一些位置被ban了,字符串t的价值是|t|*t在s中出现次数而且终点没有被ban.问你最大的价值是多少 题解:很明显t是s子串,建个sam,对于sam中每个位置,我们需要删除中 ...
- CodeForces 873F Forbidden Indices 后缀数组
忘了当时怎么做的了,先把代码贴上,保存一下后缀数组模板. #include <cstdio> #include <cstring> #include <algorithm ...
- Educational Codeforces Round 30
Educational Codeforces Round 30 A. Chores 把最大的换掉 view code #pragma GCC optimize("O3") #pr ...
- Kibana 创建索引 POST 403 (forbidden) on create index
一.问题描述: Kibana创建索引:kibana > management > index patterns > create index pattern 索引名称: mercha ...
- 遇到 HTTP 错误 403.14 - Forbidden?
打开 http://localhost:1609 报错: HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容 解决方案一:设置默认首页 在 Web.conf ...
- Forbidden You don't have permission to access / on this server PHP
在新安装的谷歌游览器里,打不了PHP网站了,错误显示: Forbidden You don't have permission to access / on this server. 原因还是配置权限 ...
随机推荐
- http 缓存 笔记
http 缓存,有时候静态资源没更新的情况下,不需要每次都去服务器获取,减少资源的请求. Http 报文中与缓存相关的首部字段 1. 通用首部字段(就是请求报文和响应报文都能用上的字段) 2. 请求首 ...
- python 之用户自定义函数
什么是函数? 函数无非就是将代码块进行封装,想用的时候拿来用,减少代码量,提高效率. 函数的定义 定义一个函数需要: 1.def关键字,def 后面空一格输入函数名称,函数命名时尽量简短,且具有意义, ...
- week_2
Andrew Ng 机器学习笔记 ---by OrangeStar Week_2 1.Multiple Features 更有效的线性回归形式 此时,h函数已经不是二阶了. \[ X = \begin ...
- GitHub上的一个Latex模板
代码下载:GitHub的项目地址或者在LATEX项目报告模板下载. 编译环境:Latex的编译器,如Ctex软件. 把源码clone或者下载到本地后,根据他的说明 如何开始 使用report.tex开 ...
- Window注册表的学习记录
注册表的结构: 概述:注册表是一种树状结构,在很早之前是系统的其他配置信息存放的文件,通常以.ini结尾的文件,因为数量太多不方便管理,后来就整合在一起形成了注册表.你可以按住键盘win+r,然后输入 ...
- 一文告诉你AVM中设置字体的方法
avm 是一种简便的多端开发框架,可以开发APP.小程序.H5.今天学习了一下使用 avm 开发 APP 怎么设置字体,下面将经验分享给大家. 所需步骤: 1. 将需要使用的字体文件放到代码包r ...
- Android 使用实现简单的音乐播放以及管理
这里主要通过 MediaPlayer以及 AudioManager 来实现的对应的功能. 1.第一种,播放本地媒体文件: 你需要自己准备一个MP3格式的音频文件: 然后在资源目录(res)里面新建一个 ...
- 焦距的物理尺度、像素尺度之间的转换关系以及35mm等效焦距
已知: 物理焦距:F=35.56,单位:mm 图片大小:width*height=6000*4000,单位:pixel CCD尺寸:ccdw*ccdh=23.5*15.6,单位:mm 求: 像素焦距: ...
- angularIonic CLI环境搭建安装以及栅格响应式布局
- Ubuntu安装Anaconda并且配置国内镜像教程
前言 我们在学习 Python 的时候需要不同的 Python 版本,关系到电脑环境变量配置换来换去很是麻烦,所以这个时候我们需要一个虚拟的 Python 环境变量,我之前也装过 virtualenv ...