题意

题意翻译

对于一个字符串\(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的更多相关文章

  1. python中IndentationError: expected an indented block错误的解决方法

    IndentationError: expected an indented block 翻译为IndentationError:预期的缩进块 解决方法:有冒号的下一行要缩进,该缩进就缩进

  2. iOS10之Expected App Behaviors

    昨天上架到appStore的时候碰到个问题,构建好后上传到itunesconnect的的包都用不了, 显示错误为:此构建版本无效. 或者英文显示为:ITC.apps.preReleaseBuild.e ...

  3. 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 ...

  4. 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 ...

  5. Hive启动报错: Found class jline.Terminal, but interface was expected

    报错: [ERROR] Terminal initialization failed; falling back to unsupported java.lang.IncompatibleClassC ...

  6. 解决:error: Cannot fetch repo (TypeError: expected string or buffer)

    同步源码,问题重现: Fetching project platform/external/libopus Fetching project repo error: Cannot fetch repo ...

  7. C和指针 第十二章 结构体 整体赋值 error: expected expression

    定义结构体后整体赋值时发生错误 typedef struct NODE { struct NODE *fwd; struct NODE *bwd; int value; } Node; //声明变量 ...

  8. expected an indented block

    expected an indented block 在初步使用Python的时候遇到了" expected an indented block"报错信息,查询相关的博客得知是因为 ...

  9. JUnit4:Test注解的两个属性:expected和timeout

    JUnit4:Test文档中的解释: The Test annotation supports two optional parameters. The first, expected, declar ...

随机推荐

  1. 十篇笔记走向Python测试开发之路四(字典)

    字典 字典(dict)是Python的一种内置的数据结构.在其他语言中也称为map,使用键-值(key-value)存储,可以通过查找某个特定的词语(键 key),从而找到他的定义(值 value) ...

  2. spark读取文件机制 源码剖析

    Spark数据分区调研 Spark以textFile方式读取文件源码 textFile方法位于 spark-core_2.11/org.apache.spark.api.java/JavaSparkC ...

  3. Angular常用命令

    一. Angular常用命令 1. ng new 文件夹名 (新建项目,选择y使用路由) 2. ng serve --open (默认浏览器运行项目) 3. ng serve --port 6060  ...

  4. light oj 1102 - Problem Makes Problem组合数学(隔板法)

    1102 - Problem Makes Problem As I am fond of making easier problems, I discovered a problem. Actuall ...

  5. git报错:fatal: No configured push destination.

    本地仓库代码(git push)上传git仓库报错: fatal: No configured push destination. Either specify the URL from the co ...

  6. 全志V3S 编译运行xboot笔记

    目录 全志V3S 编译运行xboot笔记 1.目的 2.环境准备 3.下载 3.1 fel模式进入 3.2 sunxi-fel工具的使用 3.3 烧录 4.串口打印 5.总结 全志V3S 编译运行xb ...

  7. SpringBoot安全管理--(二)基于数据库的认证

    简介: 上篇文章向读者介绍的认证数据都是定义在内存中的,在真实项目中,用户的基本信息以及角色等都存储在数据库中,因此需要从数据库中获取数据进行认证. 开始: 首先建表并且插入数据: pom.xml & ...

  8. JavaScript数据类型typeof()和转换

    javascript属于弱类型,值包含:数字,字符串和布尔值,c++与java属于强类型;int a="a",string a="a" 报错;var a ;原始 ...

  9. 7.Android-压力测试、单元测试、日志猫使用

    1.压力测试monkey 通过cmd输入下面命令: adb shell monkey -p com.example.phonecall --ignore-crashes --ignore-timeou ...

  10. 重新安装python后,原来在虚拟环境里的django项目启动报错:dyld: Library not loaded: @executable_path/../.Python Referenced from: /Users/mac/.virtualenvs/WYGBlog-env/bin/python Reason: image not found

    因为当你创建一个虚拟环境的时候,一些软链接创建到原来的python上. 当用Homebrew更新python后,原来软连接对应的python已经不存在了. 因此需要把软链接指向新的python. 解决 ...