Lust 题解

CF446E

很好的一道 EGF 入门题。


我们发现每一操作一次,答案增加多少,\(\prod a_i\) 就减小多少。

于是答案即为 \(\prod a_i-\prod (a_i-b_i)\),其中 \(b_i\) 为在 \(i\) 位子上操作的次数。

显然我们只需算出后面这坨的期望就行了,前面是固定的。

期望是困难的,先化为普通式子。

\[\mathbb E\left[\prod \left(a_i - b_i\right)\right]=\cfrac{1}{n^k}\sum_{\sum b_i=k} \cfrac{k!}{\prod b_i!}\prod\left(a_i-b_i\right)=\cfrac{k!}{n^k}\sum_{\sum b_i = k}\prod \cfrac{a_i-b_i}{b_i!} \]

注意求和的那坨式子,看到 \(\sum b_i=k\) 在条件上就想 \(\cdots\) 嗯,生成函数。

说来就来,写出 :

\[\hat F(x) = \sum_{i=0}^\infin \left(\sum_{\sum b_j = i}\prod \cfrac{a_j-b_j}{b_j!}\right)x^i \]

再把求和后面那一坨拎出来:

\[\hat G_i(x) = \sum_{j=0}^\infin \cfrac{a_i - j}{j!}x^j = \sum \cfrac{a_i}{j!}x^j - \sum\cfrac{1}{\left(j - 1\right)!}x^j=a_ie^x-x\sum \cfrac{1}{\left(j - 1\right)!}x^{j-1}=(a_i-x)e^x \]

发现 \(\hat F\) 就是 \(\hat G\) 的加法和卷积,所以:

\[\hat F(x) = \prod \hat G_i(x) = \prod\left(a_i-x\right)e^x=e^{nx}\prod \left(a_i-x\right)=\left[\prod\left(a_i-x\right)\right]\sum \cfrac{x^in^i}{i!} \]

左边这个求积的各项系数显然可以求出(方法放在后面),设其为 \(H(x)=\sum h_ix^i\)

所以答案即为:

\[\mathbb E\left(ans\right) = \prod a_i - \cfrac{k!}{n^k} \left[x^k\right]\hat F(x) = \prod a_i -\sum \cfrac{h_in^{k-i}}{\left(k - i\right)!}=\prod a_i - \sum \cfrac{h_ik!}{\left(k - i\right)!n^i} \]

这里就做完了。


现在我们回过头来想怎么求出 \(h_i\)

我们想的是 \(\prod_{i=0}^n \left(a_i-x\right)\) 的系数,但是我们可以从 \(\prod_{i=0}^{n-1} \left(a_i-x\right)\) 的系数推出,只需要给每个位置项都乘上 \((a_n-x)\) 再更新到系数上就行了。

以此类推,只要从 \(n=0\) 的情况不断递推即可。

代码还是相当好写的。

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i, a, b) for (int i = (a); i <= (b); i++)
#define per(i, a, b) for (int i = (a); i >= (b); i--)
constexpr int MAXN = 5005;
constexpr int MOD = 1e9 + 7;
int qpow(int x, int y) {int ans = 1;while (y) {if (y & 1)ans = ans * x % MOD;x = x * x % MOD;y >>= 1;}return ans;
}
int a, n, k, c[MAXN];
signed main() {cin >> n >> k;c[0] = 1;rep (i, 1, n) {cin >> a;per (j, i, 1) {c[j] *= a;c[j] -= c[j - 1];c[j] = (c[j] + MOD) % MOD;}(c[0] *= a) %= MOD;}int ans = c[0], pw = 1;rep (i, 0, n) {(ans += MOD - pw * c[i] % MOD) %= MOD;(pw *= (k - i) * qpow(n, MOD - 2) % MOD) %= MOD;}cout << ans << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/877403.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybatis的demo程序

事实上,关于mybatis框架的所有过程,均可见于 https://mybatis.net.cn/getting-started.html 一 创建数据库 该部分就是简单的sql语句创建数据库和数据表的过程,不多赘婿,结果如图所示 二 创建maven项目,导入依赖 首先创建maven项目,注意将maven的地址改为自己的maven,而…

lightroom调色笔记

1.关于色彩关系任意两种颜色的混合都会是另一种颜色的互补色 RGB模式下: 红绿混合是黄,黄是蓝色的互补色 蓝绿混合是青色,红色是青色互补色 红蓝混合是品色,品色是绿色的互补色 2.亮度的区域划分3.关于曲线上的锚点 使用ctrl在画面上可以在曲线上找到需要调整的位置 画面偏…

05. 用户组管理

一、什么是用户组管理每一个用户都有一个用户组,系统可以对一个用户组的所有用户进行集中管理。不同 Linux 系统对用户组的规定有所不同。Linux 下的用户属于与它同名的用户组,这个用户组在创建用户时同步创建。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修…

华为mate70pro+ 对比 小米10ultra 高像素模式

华为 拍摄一张大概要5-7秒 小米 只需不到1秒 华为明显要强华为小米 华为小米

Qt Quick与ROS通过UDP协议实现网络通信

实现目标 项目需要编写一个无人机地面站,无人机在ROS系统下运行,地面站需要与无人机建立通信,能够控制无人机起飞、降落、飞行,并能够接收无人机的状态信息。 该无人机系统的组成如下图所示:地面站通过无线网络与无人机上位机建立通信,上位机负责将飞控的无人机状态数据转…

5.C++提高编程

C++提高编程。C++提高编程 本阶段主要针对C++泛型编程和STL技术做详细讲解,探讨C++更深层的使用 1 模板 1.1 模板的概念 模板就是建立通用的模具,大大提高复用性 例如生活中的模板 一寸照片模板:PPT模板:模板的特点: 模板不可以直接使用,它只是一个框架 模板的通用并不是…

又来新活了!AI电商搜索,或是下一个90亿美元独角兽?

全新体验,大模型驱动的对话式购物搜索。图源:https://www.shopencore.ai/ 全新体验,大模型驱动的对话式购物搜索。 Encore, 由2024年10月成立的美国初创公司开发。定位于二手商品对话式购物搜索,最终目标为个人购物助理。 2024年12月3日获得YC(Y combinator)的50万美元天使…

qq网页版下载音乐教程

点一首音乐开始播放,务必要播放界面内只有一首音乐,然后f12调试,找到audio标签;然后复制src=”” 双引号内的内容到新标签打开,然后在播放栏,右键,就可以保存音乐了,注意有的音乐是m4a格式,下载完成后还要转换成mp3。谢雨尘安-谢雨尘安的博客

gin: 校验参数时返回自定义错误信息

一,代码 1,global/validator.go package globalimport "github.com/go-playground/validator/v10"//存放GetMessages()方法 type Validator interface {GetMessages() ValidatorMessages }//校验信息 type ValidatorMessages map[string]string// GetErrorMsg方法,…

VM笔记_Modbus通信触发流程

1,通信触发流程 ①通信配置② 接收事件新建③全局触发-事件触发4, 通信心跳配置和启用5, 效果展示

[SWPUCTF 2021 新生赛]easyupload3.0 Writeup

题目来源:NSSCTF 题目方向:Web 题目类型:文件上传 2.0的做法和1.0相同,不过用.phtml绕过就行 1.这里去了解了一下.htaccess文件: htaccess文件是Apache服务中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮助我们实现:网页301重定向、自定义404错…

数据库性能调优中的配置参数调整:提升系统效率的关键环节

title: 数据库性能调优中的配置参数调整:提升系统效率的关键环节 date: 2025/1/31 updated: 2025/1/31 author: cmdragon excerpt: 数据库的性能直接影响到应用程序的响应能力和用户体验,因此在日常运维中,管理员需要定期对数据库系统进行性能调优。配置参数调整是数据库性…