当前位置: 首页 > news >正文

【学习笔记】「JOISC 2022 Day1」错误拼写

久违的字符串计数题。

显然只用考虑 [ i : j ] [i:j] [i:j]这一段拼成的串。不难得出结论:设 n x t i nxt_i nxti表示 i i i之后第一个本质不同的字符的位置,那么 n x t i ≤ j nxt_i\le j nxtij,并且 s i ? s n x t i s_i?s_{nxt_i} si?snxti,或者 n x t i > j nxt_i>j nxti>j

注意到限制对于左端点 l l l是固定的。对于左端点,保留最紧的,也就是 r r r最大的限制。这样设 f i , j f_{i,j} fi,j表示前缀 i i i,且 s i s_i si等于 j j j的答案,发现贡献是一段区间,可以差分搞一下。可能稍微有一点麻烦。

注意不要算重。

复杂度 O ( 26 n ) O(26n) O(26n)

http://www.lryc.cn/news/64270.html

相关文章:

  • 码出高效:Java开发手册笔记(线程池及其源码)
  • 【MySQL】交叉连接、自然连接和内连接查询
  • 长/短 链接/轮询 和websocket
  • 数据库的事务
  • 专利进阶(二):专利撰写常用技术及算法汇总(持续更新中)
  • C#手术麻醉临床信息系统源码,实现体征数据自动采集绘制
  • 现代CMake高级教程 - 第 7 章:变量与缓存
  • SQL知识汇总
  • 区位码-GB2312
  • 文本识别、截图识别保存和多文件识别
  • 针对近日ChatGPT账号大批量封禁的理性分析
  • MATLAB算法实战应用案例精讲-【人工智能】对比学习(概念篇)
  • WeakMap 与 WeakSet
  • 【hello Linux】进程信号
  • 【SpringBoot】获取HttpServletRequest的三种方式
  • k8s DCGM GPU采集指标项说明
  • 从线程安全到锁粒度,使用Redis分布式锁的注意事项
  • CopyOnWriteArrayList 的底层原理与多线程注意事项
  • 互斥锁深度理解与使用
  • Elasticsearch --- 数据聚合、自动补全
  • Haproxy搭建web群集
  • Packet Tracer - 配置和验证小型网络
  • Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机设备的各种固件信息如DeviceID或者SerialNumber等(C++)
  • java 的参数传递
  • 【面试长文】HashMap的数据结构和底层原理以及在JDK1.6、1.7和JDK8中的演变差异
  • 【25】linux进阶——网络文件系统NFS
  • JAVA入坑之JAVADOC(Java API 文档生成器)与快速生成
  • React | React组件化开发
  • 云计算的优势与未来发展趋势
  • shell编程lesson01