[JSOI2016]无界单词[动态规划、kmp]
题意
分析
对于第一问,枚举最终串最小的相同前后缀来统计答案。
由于最小的相同前后缀也是无界单词,所以可以考虑先求解子问题。
定义状态 \(f(i)\) 表示长度为 \(i\) 的串中有多少个是无界单词。
补集转化后容易得到:
\[f_i=2^i-\sum\limits_{i=1}^{\left\lfloor\frac{i}{2}\right\rfloor}f_j\times2^{i-2j}\]
对于第二问,按位确定答案。每次在前 \(len\) 位确定的情况下重新算 \(f\) 。
- 如果 \(i\le len\) :此时求出 \(next\) 数组判断。
- 否则,如果 \(j>len\) : 正常判断。
- 如果 \(j \le len\) 且 \(len\le n - j\) : 贡献为 \(f_j\times 2^{i-len-j}\)
- 如果 \(j\le len\) 且 \(len > n - j\):要满足 \(s[1\cdots len-i+j]=s[i-j+1\cdots len]\) 且 \(f_j\) 为1。
代码
[JSOI2016]无界单词[动态规划、kmp]的更多相关文章
- [JSOI2016]无界单词
题目 题意:求\(\rm border\)长度为\(0\)的\(n\)位\(0,1\)字符串个数,并求字典序第\(k\)小的那一个. 首先是计数,正向不是很好算,考虑正难则反:设\(f_i\)表示长度 ...
- 【LOJ】#2078. 「JSOI2016」无界单词
题解 用所有的方案减去有界的方案 我们规定两个前缀后缀相同时长度最短的,设长度为l,因为长度最短所以他们也是无界单词,可以递推 \(f[i] = \sum_{j = 1}^{\lfloor \frac ...
- 无界鼠标 Mouse Without Borders
最近遇到一个不爽的事,单位的办公电脑,配置低,自带笔记本电脑,屏幕小. 在给自己的笔记本电脑外接了22寸显示器以后,屏幕是舒服了很多,而且外接了微软的人机工学键鼠套装,加上自己的伪人机工学椅,舒适性确 ...
- python concurrent.futures.Threadpoolexcutor的有界队列和无界队列
1.默认是无界队列,如果生产任务的速度大大超过消费的速度,则会把生产任务无限添加到无界队列中,这样一来控制不了生产速度,二来是会造成系统内存会被队列中的元素堆积增多而耗尽. 2.改写为有界队列 cla ...
- oracle IMP-00085: 为无界导出文件指定了多个输入文件
导入按表导出的数据的时候,提示为无界导出文件指定了多个输入文件 命令如下: imp user/user@database file=e:\test.dmp 提示信息: Import: Release ...
- 有界、无界队列对ThreadPoolExcutor执行的影响
本文转载自https://blog.csdn.net/kusedexingfu/article/details/72491864 Java提供了4钟线程池: newCachedThreadPool n ...
- [转] Java 无界阻塞队列 DelayQueue 入门实战
原文出处:http://cmsblogs.com/ 『chenssy』 DelayQueue是一个支持延时获取元素的无界阻塞队列.里面的元素全部都是"可延期"的元素,列头的元素是最 ...
- mouse without borders无界鼠标使用教程
mouse without borders无界鼠标使用教程 摘自https://www.jianshu.com/p/6a0209ad03f8 老黑随笔 关注 0.4 2018.05.18 11: ...
- Java泛型(7):无界通配符<?>
无界通配符<?>很容易和原生类型混淆. 以List为例: List表示持有任何Object类型的原生List,其实就等价于List<Object> List<?>表 ...
随机推荐
- Mac上用spotlight搜索输入几个字母后闪退
最近使用电脑时遇到的问题: 使用spotlight进行搜索时,只要输入字母超过一定个数(在我的Mac上是3个),spotlight就闪退了. 谷歌搜索得到大部分解决方案是在系统自带词典的偏好设置里取消 ...
- centos7执行umount提示:device is busy或者target is busy解决方法
问题描述: 因为挂载错了,想取消挂载,但是umount报告如下错误: [root@zabbix /]# umount /dev/sdc1 umount: /data1: target is busy. ...
- windows7系统最大支持多少内存
目前Windows 7 64位版仅能使用最大为192GB内存. 这是各个版本的具体数据:64位的Windows 7家庭普通版最高可支持8GB内存,家庭高级版最高可支持16GB内存,64位的Win ...
- Docker容器学习与分享12
Docker多主机管理 之前在一台Centos7上安装了Docker,如果是在多台主机上都安装Docker,用手动安装的方法不光效率低下,而且有可能出错,所以可以使用Docker Machine进行多 ...
- Lua 与 C 交互之UserData(4)
lua作为脚本于要能够使用宿主语言的类型,不管是宿主基本的或者扩展的类型结构,所以Lua提供的UserData来满足扩展的需求.在Lua中使用宿主语言的类型至少要考虑到几个方面: 数据内存 生命周期 ...
- Alpha冲刺! Day3 - 砍柴
Alpha冲刺! Day3 - 砍柴 今日已完成 晨瑶:补充安卓技能树: review接口文档:看了点七牛云安卓API. 昭锡:没有团队项目相关贡献. 永盛: API 文档基本完成:根据 API 文档 ...
- python框架面试题联系
1.对 MVC,MVT 解读的理解? M:Model,模型,和数据库进行交互 V:View,视图,负责产生 Html 页面 C:Controller,控制器,接收请求,进行处理,与 M 和 V 进行交 ...
- 最后一个单词的长度的golang实现
给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度. 如果不存在最后一个单词,请返回 0 . 说明:一个单词是指由字母组成,但不包含任何空格的字符串. 输入: "He ...
- [bug] 验证selenium的显式和隐式等待而发现的一个低级错误
隐式等待:如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步.按照这说法举了个例子为啥不会按照预期执行了,难不成是这个定义有问题(~~~~~直接否定不是定义的问题,相信它 ...
- 【SQL】sql update 多表关联更新方法总结
#表结构: 1.表一:Test1 Id name age 1 2 2.表二:Test2 Id name age 1 小明 10 2 小红 8 #实现将表Test2的name和age字段 ...