\(36pts\)

\(O(tqn^2)\)暴力即可

\(40pts\)

对于最朴素的暴力优化,从头到尾扫,如果已经当前位字符比出优先级,那么直接能判断了,没必要往后跑了,第15个性质B的也给跑过了,我没料到,不过数据强一点其实和20pts没区别

\(性质A(60pts)\)

没有想出来

\(性质B(72pts)\)

写这个性质只有12pts,但是对于思考正解有很大帮助

给定st和r,题目让我们求 \(s[st,st+l-1]\) 字典序小于 \(R(s[st+l,st+2l-1])\) 且 1<=l<=r 的个数,先把反串接在后面,用特殊符号连接。既然这个东东很像回文,那我们就把他搞成成前缀或后缀表示,采用放缩法,于是上面的东东相当于是: \(s[st,n]<=s[1,st+2l-1]\) ,跟上面的东东没两样,然后就是st开始的后缀小于st+2l-1结尾的前缀,感觉是SA+ds状物(SAM维护不了rank)。按照这样子搞显然会出现重复,不过写B性质绰绰有余,正解感觉就是搞个容斥减掉贡献了

令\(n=|S+char+revS|\)

那么 \(yn=|S| ,有n=2yn+1\)

所以需要求 pos属于 \([n+2-st-2r,n-st]\) 且满足 pos和st奇偶性相同,rank[st]<rank[p]的个数

就变成了经典模型二维数点,但是需要分奇偶去搞,分奇偶去搞的原因如下:

\(A=S[st,st+l-1],B=S[st+l,st+2l-1]\)

我们尝试将 \(l\) 增加一位,比较的两个子串变成了 \(A'=S[st,st+l],B'=S[st+l+1,st+2l+1]\)

我们发现 \(B'\) 的右端点较 \(B\) 的右端点增加了 \(2\).

可以发现,在固定 \(l\) 的前提下,\(B\) 的右端点奇偶性是固定的, 所以我们需要将询问按 \(l\) 的奇偶性分别建立树状数组.

正解

在B性质基础上,考虑容斥,非法情况就是 \(S[st,st+2l-1]\) 构成回文串,并且 \(rank[st]<rank[st+2l-1]\) ,那就要减掉1种情况

现在想怎么搞出回文串,显然是要找偶回文,因为你没有理由中间有个字符(但是我们可以假设回文中心是 \(i+\frac{1}{2}\) )然后对于所有以某个位置为回文中心的所有偶回文串,针对 \(s[i...]和revs[..j]\) 要么全产生贡献,要么全都不产生贡献,所以就不需要用PAM和Manacher了,然后我们求回文串是什么,显然转化成了SA的经典问题,求任意两个后缀的lcp,不过要注意两个串是同一个(不过本质上是一样的),然后对于每一个 \(i\),扫过去的时候就又是个二维数点了

P9482 [NOI2023] 字符串 题解的更多相关文章

  1. 最长重复字符串题解 golang

    最长重复字符串题解 package main import ( "fmt" "strings" ) type Index map[int]int type Co ...

  2. [SCOI2010]生成字符串 题解(卡特兰数的扩展)

    [SCOI2010]生成字符串 Description lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数 ...

  3. BZOJ4259:残缺的字符串——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4259 很久很久以前,在你刚刚学习字符串匹配的时候,有两个仅包含小写字母的字符串A和B,其中A串长度 ...

  4. BZOJ1856:[SCOI2010]字符串——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=1856 lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还 ...

  5. LintCode-282 · 解压字符串-题解

    题目链接:https://www.lintcode.com/problem/282/description?_from=collection&fromId=208描述:小Q想要给他的朋友发送一 ...

  6. cojs 疯狂的字符串 题解报告

    首先这道题是GT考试的加强版本QAQ 当n<k的时候,答案显然是10^n 当n=k的时候,答案显然是10^n-1 这样就有20分辣 之后我们考虑k<=20的做法 显然设f(i,j)表示前i ...

  7. Codeforces Round #309 (Div. 2) A. Kyoya and Photobooks 字符串水题

    A. Kyoya and Photobooks Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...

  8. LeetCode一句话题解

    深度优先搜索 人生经验 1. 需要输出所有解.并由于元素集有重复元素,要求返回的结果需要去重的情况,可考虑使用值对应数量的map,然后分别考虑依次取不同数量该值的可能. LeetCode39 题目:给 ...

  9. Codeforces Round #466 (Div. 2) 题解940A 940B 940C 940D 940E 940F

    Codeforces Round #466 (Div. 2) 题解 A.Points on the line 题目大意: 给你一个数列,定义数列的权值为最大值减去最小值,问最少删除几个数,使得数列的权 ...

  10. NOIP模拟测试25「字符串·乌鸦喝水·所陀门王的宝藏(陀螺王)」

    字符串 题解 没看出catalan怎么办 dp打表啊! 考虑大力dp拿到30分好成绩!顺便收获一张表 打表发现$C_{n+m}^{m}-C_{n+m}^{m-1}$ 仔细观察然后发现其实就是之前的网格 ...

随机推荐

  1. 【爬虫案例】用Python爬取知乎热榜数据!

    目录 一.爬取目标 二.编写爬虫代码 三.同步讲解视频 3.1 代码演示视频 3.2 详细讲解视频 四.获取完整源码 一.爬取目标 您好,我是@马哥python说,一名10年程序猿. 本次爬取的目标是 ...

  2. Doris写入数据异常提示actual column number in csv file is less than schema column number

    版本信息: Flink 1.17.1 Doris 1.2.3 Flink Doris Connector 1.4.0 写入方式 采用 String 数据流,依照社区网站的样例代码,在sink之前将数据 ...

  3. ChatGPT的探索与实践-业务应用篇

    本篇文章主要介绍在实际的开发过程当中,如何使用GPT帮助开发,优化流程,恰逢今年京东20周年庆,文末会介绍如何与618大促实际的业务相结合,来提升应用价值.全是干货,且本文所有代码和脚本都是利用GPT ...

  4. jdbc-plus是一款基于JdbcTemplate增强工具包,基于JdbcTemplate已实现分页、多租户、动态表名等插件,可与mybatis、mybatis-plus等混合使用

    jdbc-plus简介 jdbc-plus是一款基于JdbcTemplate增强工具包,基于JdbcTemplate已实现分页.多租户.动态表名等插件,可与mybatis.mybatis-plus等混 ...

  5. 2022-1-10 控件学习2 Button、CheckBox、RadioButton、PasswordBox、Image、ToolTip

    Button         设置带图片的按钮: 设置button按钮通用类型:  CheckBox          IsChecked设置是否选中 RadioButton 使用GroupName这 ...

  6. 2021-8-5 Microsoft文档学习笔记(C#)

    以下列表概述了类可以包含的成员类型. 常量:与类相关联的常量值 字段:与类关联的变量 方法:类可执行的操作 属性:与读取和写入类的已命名属性相关联的操作 索引器:与将类实例编入索引(像处理数组一样)相 ...

  7. [FreeSWITCH]简单配置fifo呼入队列

    拨号计划 <?xml version="1.0"?> <include> <context name="inboundcall"& ...

  8. 如何通过关键词搜索API接口获取1688的商品详情

    如果你是一位电商运营者或者是想要进行1688平台产品调研的人员,你可能需要借助API接口来获取你所需要的信息.在这篇文章中,我们将会讨论如何通过关键词搜索API接口获取1688的商品详情. 第一步:获 ...

  9. 避坑|在读取excel.xlsx文件中的内容时发现明明只有3行,但跑起来却认为有13行,导致有10行None,UI自动化测试代码空跑了10次;|UI自动化测试|数据驱动

    在读取excel.xlsx文件中的内容时发现明明只有3行,但跑起来却认为有13行,导致有10行None,UI自动化测试代码空跑了10次: 原因:excel.xlsx内容清除时用delete快捷键导致, ...

  10. ERP进销存系统源码

    介绍 ERP进销存管理系统 软件架构 核心框架:SpringBoot 2.0.0 持久层框架:Mybatis 1.3.2 日志管理:Log4j 2.10.0 JS框架:Jquery 1.8.0 UI框 ...