[1] 分析

设 \(m\) 次选的位置分别为 \(b_{1\sim m}\)。

于是答案为 \(\mathbb E(\prod\limits_{i = 1}^{n}(a_i + \sum\limits_{j = 1}^{m}[b_j \le i]\cdot v)) = \frac{S}{n^m}\)。

首先考虑期望很难做,希望将期望转化为概率形式,通过计算期望贡献之和来计算期望,发现因为这题贡献难以计算,这样还是有点困难。

再考虑因为所有方案等概率,将求期望转化为求所有情况下所期望答案的总和,最后除以总方案数即可,即求 \(S\)。

\(S = \sum\limits_{b}\prod\limits_{i = 1}^{n}(a_i + \sum\limits_{j = 1}^{m}[b_j \le i]\cdot v)\),发现最终的 \(a_i = a_i + v +\cdots\)。

因为答案最终是多个 \(n\) 个数相乘得到的数相加,于是答案可以 DP 求出。

具体而言,令 \(f_{i,j}\) 代表前 \(i\) 个数确定,有 \(j\) 个 \(b_p\) 已经确定。(注意,对 \(v\) 的个数并没有限制)。

对当前这一位分类讨论:

若这一位取 \(a_i\),则 \(f_{i - 1,j}\cdot a_i\to f_{i,j}\)。

若这一位取 \(v\)(已确定位置的 \(b\) 提供),则 \(f_{i - 1,j}\cdot v\cdot j\to f_{i,j}\)。

若这一位取 \(v\)(新确定一个 \(b\)),则 $f_{i - 1,j - 1}\cdot v\cdot (m - (j - 1))\cdot i\to f_{i,j} $。

那么初始有 \(f_{0,0} = 1\)。

最后统计答案 \(S = \sum\limits_{i=0}^{\min(n,m)} f_{n,i}\cdot n^{m-i}\)。

[2] 代码

int main() {
rd(n); rd(m); rd(v);
rep(i, 1, n) rd(a[i]);
int cur = 1;
int pre = 0;
f[0][0] = 1;
rep(i, 1, n) {
rep(j, 0, min(i, m)) {
f[cur][j] = 1LL * f[pre][j] * (a[i] + 1LL * v * j % mod) % mod;
if(j > 0) fadd(f[cur][j], 1LL * f[pre][j - 1] * v % mod * (m - (j - 1)) % mod * i % mod);
}
swap(cur, pre);
}
rep(i, 0, min(n, m)) {
fadd(S, f[pre][i] * fpow(n, m - i) % mod);
}
S = S * fpow(fpow(n, m), mod - 2) % mod;
pt("%d\n", S);
return 0;
}

[3] 经验

在遇到求期望的题目时,尝试将期望变为求概率方案\(\cdot\)贡献

Tenzing and Random Operations CF1842G 题解的更多相关文章

  1. Lintcode105 Copy List with Random Pointer solution 题解

    [题目描述] A linked list is given such that each node contains an additional random pointer which could ...

  2. CF Gym 102028G Shortest Paths on Random Forests

    CF Gym 102028G Shortest Paths on Random Forests 抄题解×1 蒯板子真jir舒服. 构造生成函数,\(F(n)\)表示\(n\)个点的森林数量(本题都用E ...

  3. NOI2014 随机数生成器

    随机数生成器 [问题描述] 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来获得随机性.事实上,随机数生成函数也并不是真正的 ...

  4. Grinder搭建小记与Nduja(这次不待续了)

    Grinder是比较有名的浏览器FUZZ框架,采用ruby语言编写,主要是作为测试框架来使用,在<白帽子讲浏览器安全>一书中作者使用了Nduja生成测试样本来配合Grinder使用.根据网 ...

  5. leveldb0

    leveldb的源代码进行学习,则纯粹是出于一个码农对美好世界进行探究的好奇.接下来将尽可能从源代码上给出leveldb代码的详尽注释,这里先列出自己在阅读前后的主要参考. 0 官方文档http:// ...

  6. [LeetCode]题解(python):138-Copy List with Random Pointer

    这道题目不是太懂,参考了http://www.cnblogs.com/zuoyuan/p/3745126.html的博客. 题意: A linked list is given such that e ...

  7. codechef Row and Column Operations 题解

    版权声明:本文作者靖心,靖空间地址:http://blog.csdn.net/kenden23/,未经本作者同意不得转载. https://blog.csdn.net/kenden23/article ...

  8. HDU 5938 Four Operations(乱搞)题解

    题意:把'+', '-', '*' 和'/'按顺序插入任意两数字间隔,使得操作得到后计算后最大. 思路:没想到是个水题,打的时候想得太复杂了.这道题其实只要考虑*和/.显然我们要把a*b/c弄到最小. ...

  9. LeetCode题解之Copy List with Random Pointer

    1.题目描述 2.问题分析 首先要完成一个普通的单链表的深度复制,然后将一个旧的单链表和新的单链表的节点使用map对应起来,最后,做一次遍历即可. 3.代码 RandomListNode *copyR ...

  10. HDU 6315 Naive Operations(线段树+区间维护)多校题解

    题意:a数组初始全为0,b数组题目给你,有两种操作: 思路:dls的思路很妙啊,我们可以将a初始化为b,加一操作改为减一,然后我们维护一个最小值,一旦最小值为0,说明至少有一个ai > bi,那 ...

随机推荐

  1. SpringCloud注册中心切换nacos

    SpringBoot与nacos版本对应关系 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF ...

  2. JVM学习笔记-如何在IDEA打印JVM的GC日志信息

    若要在Idea上打印JVM相应GC日志,其实只需在Run/Debug Configurations上进行设置即可. 拿<深入Java虚拟机>书中的3-7代码例子来演示,如 1 public ...

  3. SSRF结合Redis未授权的打法

    目录 SSRF + Redis未授权 案例 怎么构造 redis 数据包? Reference SSRF不难理解,服务器端请求伪造(英语:Server-side Request Forgery,简称S ...

  4. 图的存储、创建、遍历、求最小生成树、最短路径(Java)

    带权无向图 存储结构 存储结构选用邻接表. 当一个图为稀疏图时,使用邻接矩阵法显然要浪费大量的存储空间,而图的邻接表法结合了顺序存储和链式存储方法,大大减少了这种不必要的浪费. 当然,即使我们所处理的 ...

  5. oeasy教您玩转vim - 44 - # 综合练习

    ​ 综合练习 回忆上节课内容 上次我们学到了各种的替换模式 r,替换当前光标的字符 R,进入替换模式 ~,改变大小写 这次来个综合练习吧! 我们这次要完成这样一个任务 我们有的时候需要写日志 Syst ...

  6. oeasy教您玩转python - 003 - # - 继续运行

    ​ 继续运行 回忆上次内容 在解释器里玩耍 print("Hello World") 1+1 编写了 py 文件 运行了 py 文件 这次我们继续丰富这个文件 分析 py 文件 我 ...

  7. mybatis源码配置文件解析之五:解析mappers标签(解析class属性)

    在上篇文章中分析了mybatis解析mapper标签中的resource.url属性的过程,<mybatis源码配置文件解析之五:解析mappers标签(解析XML映射文件)>.通过分析可 ...

  8. Microsoft Dynamics CRM 365/2016 配置POP3/STMP邮箱(附例)

    前期准备: 必须支持pop3/stmp的邮箱 以下用网易163邮箱做的测试,注意开通了独立安全码,非邮箱登录密码 1.打开设置>>电子邮件配置 2.新建电子邮件配置 pop3/smtp 3 ...

  9. 【Java】SPI机制

    SPI全称: 服务供应商接口 Service Provider Interface 服务发现机制 入门概念视频来自于: https://www.bilibili.com/video/BV1E44y1N ...

  10. 【MySQL】重装Win10系统后恢复MySQL

    因为种种原因把系统重装了,安装的MySQL不在C盘中,所以数据不会被系统格式化掉 但是重装系统就把之前CMD声明的MySQL服务给删除了 要让MySQL重新跑起来,就需要重新安装服务 恢复MYSQL博 ...