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 ...
随机推荐
- 使用Java8 Files类读写文件
Java8 Files类的newBufferedReader()和newBufferedWriter()方法 这两个方法接受Path类型的参数.Path 类是Java8 NIO中的接口.可以由Path ...
- Windows 远程桌面连接Ubuntu14.04
在Ubuntu系统进行如下系统配置 1.安装xrdp sudo apt-get install xrdp 2.安装vnc4server sudo apt-get install vnc4server ...
- Red Team 指南--第2章开源情报(OSINT)侦察
第2章开源情报(OSINT)侦察 贡献者:伊恩·巴维斯翻译:BugMan 哇,慢点牛仔吧!在我们深入探讨“做性感时光”(笑话)红队闻名的黑客冒险,还有一些作业要做.五分之一的专业人士从未学习或做过任何 ...
- Vue.js 起步
通过实例来看下 Vue 构造器中需要哪些内容 测试时这段代码我直接写在index.html中 <!DOCTYPE html> <html> <head> <m ...
- Visual Studio Code中C/C++的环境配置
Visual Studio Code 的功能十分强大,但是对我这种小白不是很友好,它和其它的集成开发工具不同,Visual Studio Code (以下简称VS)自身其实仅仅是一个编辑器, 是不具备 ...
- 基于tensorflow2.0和cifar100的VGG13网络训练
VGG是2014年ILSVRC图像分类竞赛的第二名,相比当年的冠军GoogleNet在可扩展性方面更胜一筹,此外,它也是从图像中提取特征的CNN首选算法,VGG的各种网络模型结构如下: 今天代码的原型 ...
- 小白的linux笔记4:几种共享文件方式的速度测试——SFTP(SSH)/FTP/SMB
测试一下各个协议的速度,用一个7205M的centos的ISO文件上传下载.5Gwifi连接时,本地SSD(Y7000)对服务器的HDD: smb download 23M/s(资源管理器) smb ...
- 出现ImportError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly ....的解决方法
在terminal上运行gluoncv时遇到了一个报错问题. ImportError: Python is not installed as a framework. The Mac OS X bac ...
- JAVA面向对象 - 方法重载与覆盖
方法重载 方法重载就是在类的同种实现方式,到底采用哪种方式,取决与调用者给出的参数.方法重载特点是方法名相同,方法的参数类型,个数,顺序至少有一项不同,方法返回类型可以不同,方法的修饰符可以不同,只是 ...
- 面试想拿 10K,HR 说你只值 7K,该怎样回答或者反驳?
当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫. 礼貌地说:"7K是吗?了解了.嗯~其实我对贵司的面试官印象很好.只不过,现在我的手头上已经有一份11K的offer. ...