CF1205E Expected Value Again
题意
题意翻译
对于一个字符串\(s\),我们定义其美丽值\(f(s)\)为满足下列两个条件的正整数\(i\)的个数:
\(1\leq i<|s|\)
\(s\)长度为\(i\)的前缀与后缀相等,即\(\forall j\in N,1\leq j\leq i\),均有\(s_j=s_{|s|-i+j}\)
给定正整数\(n(1\leq n\leq 10^5),k(1\leq k\leq 10^9)\)。设字符集大小为\(k\),请求出所有长度为\(n\)的字符串\(s\)的\(f(s)^2\)的期望值。
做法
长度为\(x\)的\(border\)等价于\(n-x\)非严格周期
另\(g_i(s)\)为字符串\(s\)有周期\(i\)的概率,\(f(s)^2=\sum\limits_{i=1}^{n-1}E(g_{i,j}(s))\),\(g_{i,j}(s)\)表示字符串\(s\)同时具有\(i\)与\(j\)周期的概率
结论1:有计算概率公式:\[g_{i,j}(s)=\dfrac{k^{max(i+j-n,(i,j))}}{k^n}\]
Periodicity Lemma
然后开始推式子,下面关于即,省略了一些没必要的东西,就是那种不会影响计算的东西
即计算\(\sum\limits_{i=1}^{n-1}\sum\limits_{j=1}^{n-1}k^{max(i+j-n,(i,j))}\)
\(max\)去掉,来计算\(\sum\limits_{i=1}^{n-1}\sum\limits_{j=1}^{n-1}k^{i+j-n}[i+j<n+(i,j)]\)
即\(\sum\limits_{p=1}^{n-1}\sum\limits_{d|p}\mu(\frac{p}{d})\sum\limits_{i=1}^{\frac{n-1}{p}}\sum\limits_{j=1}^{\frac{n-1}{p}}k^{ip+jp}[ip+jp<n+d\Longrightarrow i+j\le \left\lfloor\frac{n+d-1}{p}\right\rfloor]\)
\(\forall d|p,2\le \left\lfloor\frac{n+d-1}{p}\right\rfloor\le \left\lfloor \frac{n-1}{p}\right\rfloor+1\),然后考虑\(x=i+j\)的系数,为\(x-1\)
然后暴力枚举\(p,d,i\),记录一些东西,容易能做到\(O(nlogn)\)
题外话
关于结论\(1\)的证明,不觉得网上的题解是对的,这个结论(应该)等价于Periodicity Lemma,如果证明真这么简单,翻国外的论文不可能没有吧
CF1205E Expected Value Again的更多相关文章
- python中IndentationError: expected an indented block错误的解决方法
IndentationError: expected an indented block 翻译为IndentationError:预期的缩进块 解决方法:有冒号的下一行要缩进,该缩进就缩进
- iOS10之Expected App Behaviors
昨天上架到appStore的时候碰到个问题,构建好后上传到itunesconnect的的包都用不了, 显示错误为:此构建版本无效. 或者英文显示为:ITC.apps.preReleaseBuild.e ...
- hadoop程序问题:java.lang.IllegalArgumentException: Wrong FS: hdfs:/ expected file:///
Java代码如下: FileSystem fs = FileSystem.get(conf); in = fs.open(new Path("hdfs://192.168.130.54:19 ...
- xcode6 使用MJRefresh,Too many arguments to function call, expected 0, have *
转载自: http://blog.csdn.net/wsjshx/article/details/40743291 将XCode升级到6后,报Too many arguments to functi ...
- Hive启动报错: Found class jline.Terminal, but interface was expected
报错: [ERROR] Terminal initialization failed; falling back to unsupported java.lang.IncompatibleClassC ...
- 解决:error: Cannot fetch repo (TypeError: expected string or buffer)
同步源码,问题重现: Fetching project platform/external/libopus Fetching project repo error: Cannot fetch repo ...
- C和指针 第十二章 结构体 整体赋值 error: expected expression
定义结构体后整体赋值时发生错误 typedef struct NODE { struct NODE *fwd; struct NODE *bwd; int value; } Node; //声明变量 ...
- expected an indented block
expected an indented block 在初步使用Python的时候遇到了" expected an indented block"报错信息,查询相关的博客得知是因为 ...
- JUnit4:Test注解的两个属性:expected和timeout
JUnit4:Test文档中的解释: The Test annotation supports two optional parameters. The first, expected, declar ...
随机推荐
- JMeter之If Controller深究一
1.背景 大家最近还好么,截止目前新型冠状病毒累计确诊病例已超7万4千多例,希望大家无论是在家办公还是单位办公,一定要注意自我防护.今天跟大家分享一下,最近一次真实生产压测遇到的问题,如题:if co ...
- Part2-求AX=b的最优解
自己一边听课一边记得,参考网上广为流传的那本<MIT线性代数笔记>,转成Latex上传太麻烦,直接截图上传了,需要电子版的可以私信我.
- 小白学 Python 数据分析(7):Pandas (六)数据导入
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- linux入门系列13--磁盘管理之RAID、LVM技术
前一篇文章学习了磁盘分区.格式化.挂载等相关知识,本文将讲解RAID和LVM技术. 磁盘管理操作主要是运维人员用的较多,如果只是单纯的开发人员,可以先略过本文.但是在很多小公司里往往都是一人多用,运维 ...
- codewars--js--Roman Numerals Encode
问题描述:(将阿拉伯数字转换成罗马数字) Create a function taking a positive integer as its parameter and returning a st ...
- XPath简介、功能及使用方法
html = '''<html><head><title>The Dormouse's story</title></head><bo ...
- ES6 - 基础学习(2): 新的变量声明方式 let 与 const
ES6)新增加了两个重要的 JavaScript 关键字:let 和 const.以前声明变量时只有一种方式:var,ES6对声明方式进行了扩展,现在可以有三种声明方式了. 1.var:variabl ...
- 五分钟后,你将真正理解MySQL事务隔离级别!
什么是事务? 事务是一组原子性的SQL操作,所有操作必须全部成功完成,如果其中有任何一个操作因为崩溃或其他原因无法执行,那么所有的操作都不会被执行.也就是说,事务内的操作,要么全部执行成功,要么全部执 ...
- [20200211]使用DBMS_SHARED_POOL.MARKHOT与sql_id的计算.txt
[20200211]使用DBMS_SHARED_POOL.MARKHOT与sql_id的计算.txt --//以前写的,使用DBMS_SHARED_POOL.MARKHOT标记热的sql_id,这样相 ...
- c# 关于抓取网页源码后中文显示乱码的原因分析和解决方法
原因分析:首先,目前大多数网站为了提升网页浏览传输速率都会对网站内容在传输前进行压缩,最常用的是GZIP压缩解压解压算法,也是支持最广的一种. 因为网站传输时采用的是GZIP压缩传输,如果我们接受we ...