考虑什么样的串是合法的。

直接考虑比较抽象,考虑具象化这个问题。

容易发现一个字符串的限制就相当于如果出现了其中一个字符 \(a_i = c\),那么 \(s\) 中 \(c\) 前 \(i - 1\) 个字符必然要为:\(a_1 \sim a_{i - 1}\),\(c\) 后的 \(n - i\) 个字符必然要为 \(a_{i + 1} \sim a_n\)。

这个限制比较严格,可以放宽为:对于每个在串 \(a\) 中出现过的字符 \(a_i = c\),其前面一个字符必为 \(a_{i - 1}\) 后面一个字符必为 \(a_{i + 1}\)。

此时我们对字符集中的每个字符建点,对于任意的一个串 \(a\) 我们连边 \(\forall i \in [1, n - 1], a_i \to a_{i + 1}\)。

因此 \(s\) 可以看作是在这张图上 不断地 选一个入度为 \(0\) 的点走到一个出度为 \(0\) 的点的过程。

那么显然要分不同的(弱)连通块考虑,容易发现一个(弱联通块)是可选的当且仅当:

  • 所有点的入度和出度均不超过 \(2\)。

  • 不存在环。

因此满足上述两条限制的连通块只能是一条往一个方向的链。

将所有可行的链找出来,问题可以转化为:

有 \(n\) 种物品,每种物品有长度 \(l_i\)(满足 \(\sum l_i = k\)),且每个物品有无限个,每次选择一个物品放在序列末端,问构成长度为 \(m\) 的序列有多少种?

考虑 \(\rm dp\),令 \(f_i\) 为构成长度为 \(i\) 的序列的方案数,朴素转移是 \(\mathcal{O}(nm)\) 的。

注意到本质不同的 \(l_i\) 至多只有 \(\sqrt{k}\) 种,于是可以将这 \(\sqrt{k}\) 种一起转移,复杂度 \(\mathcal{O}(m\sqrt{k})\),已经可以通过本题。

于此同时,我们将本质不同的 \(l\) 看作是一种后有:\(f = f \times l\),因此可以做半在线卷积 / 求逆即可,复杂度 \(\mathcal{O}(n \log ^ 2n) / \mathcal{O}(n \log n)\)。

CF1574F Occurrences的更多相关文章

  1. 2021record

    2021-10-14 P2577 [ZJOI2004]午餐 2021-10-13 CF815C Karen and Supermarket(小小紫题,可笑可笑) P6748 『MdOI R3』Fall ...

  2. [Java Web]Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors

    手机客户端向服务器提交Http请求时,Tomcat抛出错误: 十二月 31, 2014 2:32:45 下午 org.apache.coyote.http11.AbstractHttp11Proces ...

  3. eclipse使用tips-Toggle Mark Occurrences 颜色更改

    Toggle Mark Occurrences这个功能非常好用,能把选中的方法/变量在本类中全部出现的地方高亮显示,是一个非常实用的功能.但是默认颜色是灰色,非常毁眼.可以通过下面的设置更改为自己喜欢 ...

  4. [geeksforgeeks] Count the number of occurrences in a sorted array

    Count the number of occurrences in a sorted array Given a sorted array arr[] and a number x, write a ...

  5. WordLight: highlights all occurrences of a selected text for VS2008

    https://visualstudiogallery.msdn.microsoft.com/ad686131-47d4-4c13-ada2-5b1a9019fb6f About This is a ...

  6. org.apache.jasper.JasperException: - Page directive must not have multiple occurrences of pageencoding

    最近写jsp遇到一系列的低级错误,记录下来权当前车之鉴吧. 错误提示: SEVERE: Servlet.service() for servlet jsp threw exceptionorg.apa ...

  7. further occurrences of HTTP header parsing errors will be logged at DEBUG level.错误

    今天进行项目测试的时候出现了further occurrences of HTTP header parsing errors will be logged at DEBUG level.错误,查了半 ...

  8. jsp include 报错:illegal to have multiple occurrences of contentType with different values (old: text/html; charset=UTF-8, new: text/html; carset=UTF-8)

    严重: Servlet.service() for servlet jsp threw exception org.apache.jasper.JasperException: /jsp.jsp(1, ...

  9. Segment Occurrences(string find函数)

    Description You are given two strings s and t, both consisting only of lowercase Latin letters.The s ...

随机推荐

  1. 关于python常用的命令

    os模块: os.system os.system("cat/cmd等...") os.popen print os.popen("adb shell ls ../aa. ...

  2. PAT甲组 1010 Radix (二分)

    1010 Radix (25分) Given a pair of positive integers, for example, \(6\) and \(110\), can this equatio ...

  3. 第四十二个知识点:看看你的C代码为蒙哥马利乘法,你能确定它可能在哪里泄漏侧信道路吗?

    第四十二个知识点:看看你的C代码为蒙哥马利乘法,你能确定它可能在哪里泄漏侧信道路吗? 几个月前(回到3月份),您可能还记得我在这个系列的52件东西中发布了第23件(可以在这里找到).这篇文章的标题是& ...

  4. 利用数学软件Mathematica的三维图像进行建模

    前言 最近在使用Mathematica进行二元函数的图像绘制,在导出图像选项中看到了obj,maya等三维格式.其实很早之前我就有过这样的想法,但之前使用的是matlab作图,无法导出三维格式.那么废 ...

  5. X86系统或intel RK主板上EDP转LVDS屏转接板|CS5211DP转LVDS设计

    众所周知LVDS接口是美国NS美国国家半导体公司为克服以TTL电平方式传输宽带高码率数据时功耗大,电磁干扰大等缺点而研制的一种数字视频信号传输方式.由于其采用低压和低电流驱动方式,实现了低噪声和低功耗 ...

  6. Java实习生常规技术面试题每日十题Java基础(一)

    目录 1.Java 的 "一次编写,处处运行"如何实现? 2.描述JVM运行原理. 3.为什么Java没有全局变量? 4.说明一下public static void main(S ...

  7. MySQL基础操作指南

    启动停止MySQL服务 1.Windows服务窗口启动:开始 → 运行 → services.msc → 找到MySQL 56服务 2.MySQL命令启动:开始 → 运行 → 管理员权限运行cmd → ...

  8. Java面向对象笔记 • 【第3章 继承与多态】

    全部章节   >>>> 本章目录 3.1 包 3.1.1 自定义包 3.1.2 包的导入 3.1.3 包的访问权限 3.1.4 实践练习 3.2 继承 3.2.1 继承概述 3 ...

  9. 【操作系统】I/O多路复用 select poll epoll

    @ 目录 I/O模式 I/O多路复用 select poll epoll 事件触发模式 I/O模式 阻塞I/O 非阻塞I/O I/O多路复用 信号驱动I/O 异步I/O I/O多路复用 I/O 多路复 ...

  10. 初识python 之 爬虫:使用正则表达式爬取“古诗文”网页数据

    通过requests.re(正则表达式) 爬取"古诗文"网页数据. 详细代码如下: #!/user/bin env python # author:Simple-Sir # tim ...