[ACNOI2021]老吧主了
题目
题目描述
吧主 H a n d I n D e v i l \sf HandInDevil HandInDevil 有很多资源,他每天会随机地发送一些资源到群里。不妨设他每天发送资源的数量是 [ 1 , A ] [1,A] [1,A] 内均匀随机的正整数。
现在已知 H a n d I n D e v i l \sf HandInDevil HandInDevil 会在接下来的 n n n 天内发送若干资源(每天发送的资源数量遵循上面的概率分布)。如果你在某一天登入群聊,就会下载 H a n d I n D e v i l \sf HandInDevil HandInDevil 今天发送的资源(之前的都过期了);如果下载过后,所有已下载的资源数量严格大于 m m m,你就会进入贤者模式,决定再也不登入群聊了。由于你今天一句话都不会发,所以这一天不算作登入了群聊。
现在,假设你选择了最优的方案(选择哪几天登入群聊)使得自己登入群聊的天数最多,请问你登入群聊的天数的期望是多少?
数据范围与提示
n ⩽ 100 n\leqslant 100 n⩽100 但是 m , A ⩽ 1000 m,A\leqslant 1000 m,A⩽1000 。
思路
设第 i i i 天的资源数量是 a i a_i ai 。显然最优方案是选择 a i a_i ai 最小的若干个。
考虑计算贡献,对于权值为 v v v 的所有 a i a_i ai,第 k k k 个会被选择多少次?显然还需要枚举 a i = v a_i=v ai=v 的真实数量 c c c,然后方案数是
∑ i = 1 n − 1 ∑ j ⩽ m − k v ( n i ) ⋅ ( n − i c ) ⋅ ( A − v ) n − i − c ⋅ g ( i , j , v ) \sum_{i=1}^{n-1}\sum_{j\leqslant m-kv}{n\choose i}\cdot{n-i\choose c}\cdot (A-v)^{n-i-c}\cdot g(i,j,v) i=1∑n−1j⩽m−kv∑(in)⋅(cn−i)⋅(A−v)n−i−c⋅g(i,j,v)
这个神秘的 g g g 是什么?其实就是考虑 a i < v a_i<v ai<v 的值的选择情况。 g ( i , j , v ) g(i,j,v) g(i,j,v) 为,选择小于 v v v 的值填满 i i i 个位置,总和为 j j j 的方案数。那么这一切都得到了很好的解释。
问题是 g ( i , j , v ) g(i,j,v) g(i,j,v) 怎么算?暴力背包?其实也还不错,因为权值为 v v v 时,最多选择 ⌊ m v ⌋ \lfloor{m\over v}\rfloor ⌊vm⌋ 个,所以项数是 O ( m ln m ) \mathcal O(m\ln m) O(mlnm) 的,总复杂度是 O ( n m 2 ln m ) \mathcal O(nm^2\ln m) O(nm2lnm) 的。而且事实上是 min ( n , ⌊ m v ⌋ ) \min(n,\lfloor{m\over v}\rfloor) min(n,⌊vm⌋),背包的常数又很小(肯定是小于 1 1 1 的,因为加起来不超过 m m m 的数对并不是 m 2 m^2 m2 个),所以已经足已通过了……
题外话:那么我为什么只拿了暴力的 20 p t s 20\rm pts 20pts 呢?因为我 忘了取模,太下饭了……
怎么优化呢?其实容斥就可以了,非常神奇!包括这道题也是如此,暴力容斥的复杂度竟然更低……
用容斥计算 g ( i , j , v ) g(i,j,v) g(i,j,v),枚举有 p p p 个值是不小于 v v v 的,那么有
g ( i , j , v ) = ∑ p ⩾ 0 ( − 1 ) p ⋅ ( j − p ( v − 1 ) − 1 i − 1 ) ⋅ ( i p ) g(i,j,v)=\sum_{p\geqslant 0}(-1)^p\cdot{j-p(v-1)-1\choose i-1}\cdot{i\choose p} g(i,j,v)=p⩾0∑(−1)p⋅(i−1j−p(v−1)−1)⋅(pi)
为什么是 p ( v − 1 ) p(v-1) p(v−1) 呢?因为要求是正整数,减去 ( v − 1 ) (v-1) (v−1) 后仍然是正整数,就是不小于 v v v 了。
题外话:我写出容斥式,结果把 ( i p ) {i\choose p} (pi) 这一项写掉了,以为可以递推算,敲了半天发现假了,心态就变成
[ACNOI2021]老吧主了相关推荐
- 默纳克主板程序升级软件 支持默纳克新老国标主板刷程序,改协议,支持外呼
默纳克主板程序升级软件V3.10 支持默纳克新老国标主板刷程序,改协议,支持外呼,轿顶板,MDKE3液晶编号:4730653353249578电梯达人
- 老毛桃u盘启动pe重建mbr图文教程
mbr即我们所说的主引导文件,是电脑启动时用于引导正常进入系统的必备文件,若主引导文件缺失,如何重建mbr 呢?接下来就跟小编共同学习老毛桃u盘启动pe重建mbr的教程. ①将u盘制成老毛桃u盘启动盘 ...
- phpmyadmin不允许一个表创建多个主键的解决办法
在phpmyadmin中执行建表语句 CREATE TABLE `user3` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(2 ...
- 利用老毛头启动盘重装win7
注意:请不要跟着本教程一步一步的做,要先看一遍 1.安装win7安装 安装win7系统所需材料: 老毛桃PE系统 下载地址:http://www.laomaotao.tv/如使用其它PE系统也是一样 ...
- 自增主键与UUID的优缺点
https://blog.csdn.net/rocling/article/details/83116950 自增主键与UUID的优缺点 rocling 2018-10-17 20:15:02 80 ...
- mysql 主键自增_还再使用数据库自增主键吗?
加油站: 在数字经济时代,数据的重要性堪比石油.大数据的四个特点:Volume(数据体量大).Variety(数据类型繁多).Velocity(处理速度快).Value(商业价值高),只要合理利用数据 ...
- 老挑毛 win7 linux,图解老挑毛u盘启动工具怎么重装系统
现在的新型电脑为了追求轻便,所以就将光驱取消了,但是这样一来用户不能通过光驱重装系统了,怎么办?别慌,我们还有一个法宝,那就是u盘,而且U盘装系统更加方便.那要怎么使用老毛桃u盘重装系统呢?接下来,小 ...
- 爆款制作获1200w播放,B站UP主+品牌如何迈入2023
1月13日,bilibili 2022年度百大UP主已经揭开帷幕,今年延续2021年的评审标准,依然从专业性.影响力.创新性三个维度进行评选. 来源-B站 这套评审标准已经实施两年,早期的百大评选上榜 ...
- 老毛桃U盘快速安装ghost win7系统图文教程
转自http://360.laomaotao.pw/jiaocheng/92/upzwin7.html 安装ghost win7需要做好下列准备工作: ① 制作一个装机版老毛桃u盘启动盘: ② 下载一 ...
最新文章
- JS删除String里某个字符的方法
- CISSP的成长之路(二十一):用户持有凭证
- 2003服务器远程桌面连不上解决办法
- oracle 几个字段中某个字段大于0其他字段不再进行统计?_如何深入理解MySQL 8.0直方图?...
- 民意调查Django实现(一)
- java pcm16位_Java – 将16位带符号的pcm音频数据数组转换为双数组
- [MySQL FAQ]系列 -- 新年新思想:MySQL也能并发导入数据
- JDK动态代理的实现原理
- python飞机大战概要设计说明书_飞机大战概要设计文档 4改
- 如何让自己看起来不像编程菜鸟?别犯这9个编程错误
- 【模糊控制器】基于simulink的模糊控制器设计
- AD画板,如何提高工作效率?
- 使用地点云实现企业官网中的门店地图
- 计算机网络教程第五版|微课版 - 第五章 运输层 - 习题【补充】
- JAVA:实现一个CircularQueue循环队列算法(附完整源码)
- 【AI视野·今日CV 计算机视觉论文速览 第215期】Tue, 8 Jun 2021
- 《大学“电路分析基础”课程实验合集.实验五》丨线性有源二端网络等效电路的研究
- ggplot2 annotate()函数
- BlueHost主机从零开始使用笔记,我踩过的坑你就不要踩了.
- 函数前后带两个下划线
热门文章
- 使用小程序实现识别图像文字并提取
- 艾美捷ProSci丨ProSci 凋亡抑制蛋白检测套装解决方案
- android 录制视频过程中拍照,GitHub - 616852636/CameraView: 仿微信拍照Android控件(点击拍照,长按录小视频)...
- 【面试必备】Swiftnbsp;面试题及其答案
- C语言常用转换函数实现原理(源代码)
- 【shader】UE4 Subsurface Profile shader提取
- 叶酸修饰碳量子点C-dots-FA|石墨烯掺杂硫化铅PbS量子点|石墨烯-PbS胶体量子点
- error LNK2001: unresolved external symbol
- 用dos编译c语言,如何在Windows命令行(DOS界面)中调用 编译器 来编译C/C++源程序...
- 宁盾DKEY短信动态密码身份认证系统