Tenzing and Random Operations CF1842G 题解
[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 题解的更多相关文章
- Lintcode105 Copy List with Random Pointer solution 题解
[题目描述] A linked list is given such that each node contains an additional random pointer which could ...
- CF Gym 102028G Shortest Paths on Random Forests
CF Gym 102028G Shortest Paths on Random Forests 抄题解×1 蒯板子真jir舒服. 构造生成函数,\(F(n)\)表示\(n\)个点的森林数量(本题都用E ...
- NOI2014 随机数生成器
随机数生成器 [问题描述] 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来获得随机性.事实上,随机数生成函数也并不是真正的 ...
- Grinder搭建小记与Nduja(这次不待续了)
Grinder是比较有名的浏览器FUZZ框架,采用ruby语言编写,主要是作为测试框架来使用,在<白帽子讲浏览器安全>一书中作者使用了Nduja生成测试样本来配合Grinder使用.根据网 ...
- leveldb0
leveldb的源代码进行学习,则纯粹是出于一个码农对美好世界进行探究的好奇.接下来将尽可能从源代码上给出leveldb代码的详尽注释,这里先列出自己在阅读前后的主要参考. 0 官方文档http:// ...
- [LeetCode]题解(python):138-Copy List with Random Pointer
这道题目不是太懂,参考了http://www.cnblogs.com/zuoyuan/p/3745126.html的博客. 题意: A linked list is given such that e ...
- codechef Row and Column Operations 题解
版权声明:本文作者靖心,靖空间地址:http://blog.csdn.net/kenden23/,未经本作者同意不得转载. https://blog.csdn.net/kenden23/article ...
- HDU 5938 Four Operations(乱搞)题解
题意:把'+', '-', '*' 和'/'按顺序插入任意两数字间隔,使得操作得到后计算后最大. 思路:没想到是个水题,打的时候想得太复杂了.这道题其实只要考虑*和/.显然我们要把a*b/c弄到最小. ...
- LeetCode题解之Copy List with Random Pointer
1.题目描述 2.问题分析 首先要完成一个普通的单链表的深度复制,然后将一个旧的单链表和新的单链表的节点使用map对应起来,最后,做一次遍历即可. 3.代码 RandomListNode *copyR ...
- HDU 6315 Naive Operations(线段树+区间维护)多校题解
题意:a数组初始全为0,b数组题目给你,有两种操作: 思路:dls的思路很妙啊,我们可以将a初始化为b,加一操作改为减一,然后我们维护一个最小值,一旦最小值为0,说明至少有一个ai > bi,那 ...
随机推荐
- SpringCloud注册中心切换nacos
SpringBoot与nacos版本对应关系 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF ...
- JVM学习笔记-如何在IDEA打印JVM的GC日志信息
若要在Idea上打印JVM相应GC日志,其实只需在Run/Debug Configurations上进行设置即可. 拿<深入Java虚拟机>书中的3-7代码例子来演示,如 1 public ...
- SSRF结合Redis未授权的打法
目录 SSRF + Redis未授权 案例 怎么构造 redis 数据包? Reference SSRF不难理解,服务器端请求伪造(英语:Server-side Request Forgery,简称S ...
- 图的存储、创建、遍历、求最小生成树、最短路径(Java)
带权无向图 存储结构 存储结构选用邻接表. 当一个图为稀疏图时,使用邻接矩阵法显然要浪费大量的存储空间,而图的邻接表法结合了顺序存储和链式存储方法,大大减少了这种不必要的浪费. 当然,即使我们所处理的 ...
- oeasy教您玩转vim - 44 - # 综合练习
综合练习 回忆上节课内容 上次我们学到了各种的替换模式 r,替换当前光标的字符 R,进入替换模式 ~,改变大小写 这次来个综合练习吧! 我们这次要完成这样一个任务 我们有的时候需要写日志 Syst ...
- oeasy教您玩转python - 003 - # - 继续运行
继续运行 回忆上次内容 在解释器里玩耍 print("Hello World") 1+1 编写了 py 文件 运行了 py 文件 这次我们继续丰富这个文件 分析 py 文件 我 ...
- mybatis源码配置文件解析之五:解析mappers标签(解析class属性)
在上篇文章中分析了mybatis解析mapper标签中的resource.url属性的过程,<mybatis源码配置文件解析之五:解析mappers标签(解析XML映射文件)>.通过分析可 ...
- Microsoft Dynamics CRM 365/2016 配置POP3/STMP邮箱(附例)
前期准备: 必须支持pop3/stmp的邮箱 以下用网易163邮箱做的测试,注意开通了独立安全码,非邮箱登录密码 1.打开设置>>电子邮件配置 2.新建电子邮件配置 pop3/smtp 3 ...
- 【Java】SPI机制
SPI全称: 服务供应商接口 Service Provider Interface 服务发现机制 入门概念视频来自于: https://www.bilibili.com/video/BV1E44y1N ...
- 【MySQL】重装Win10系统后恢复MySQL
因为种种原因把系统重装了,安装的MySQL不在C盘中,所以数据不会被系统格式化掉 但是重装系统就把之前CMD声明的MySQL服务给删除了 要让MySQL重新跑起来,就需要重新安装服务 恢复MYSQL博 ...