洛谷月赛T2 P6858[深海少女与胖头鱼]题解

题面

洛谷十月月赛II T2
深海少女与胖头鱼
总共有 n n n 条带 「圣盾」的「胖头鱼」和 m m m 条不带圣盾的胖头鱼,每次等概率对一条存活的胖头鱼造成「剧毒」伤害。

现在想知道,期望造成多少次伤害可以杀死全部胖头鱼?

答案对 998244353 998244353 998244353 取模。

「圣盾」:当拥有圣盾的胖头鱼受到伤害时,免疫这条鱼所受到的本次伤害。免疫伤害后,圣盾被破坏。
「胖头鱼」:在一条胖头鱼的圣盾被破坏后,给予其他所有没有死亡且没有圣盾的胖头鱼圣盾。
「剧毒」:立即杀死没有圣盾的胖头鱼。

输入:2 1 输出:8
输入:10 10 输出:499122389
输入:10 0 输出:65
输入:2 0 输出:5

前置知识

数学期望

数学期望

离散型
如果随机变量只取得有限个值或无穷能按一定次序一一列出,其值域为一个或若干个有限或无限区间,这样的随机变量称为离散型随机变量。
离散型随机变量的一切可能的取值 x i x_i xi与对应的概率 p ( x i ) p(x_i) p(xi)乘积之和称为该离散型随机变量的数学期望(若该求和绝对收敛),记为 E ( x ) E(x) E(x)。它是简单算术平均的一种推广,类似加权平均。

计算公式: E ( X ) = ∑ k = 1 ∞ x k p k E(X)=\sum_{k=1}^\infin x_kp_k E(X)=k=1xkpk


快速幂

求a的n次方,即求 a n = a ∗ a ∗ a ∗ a ∗ . . . ∗ a a^n=a*a*a*a*...*a an=aaaa...a n n n a a a),但是当 a , n a,n a,n过大时,暴力的计算便不太适用了。
这时候我们就需要用到快速幂(<-标准解析)

快速幂,二进制取幂(Binary Exponentiation,也称平方法),是一个在 O ( l o g N ) O(logN) O(logN) 的时间内计算 a n a^n an 的小技巧,而暴力的计算需要 O ( N ) O(N) O(N) 的时间。而这个技巧也常常用在非计算的场景,因为它可以应用在任何具有结合律的运算中。

二进制取幂的想法是,将取幂的任务按照指数的 二进制表示 来分割成更小的任务

举例:求 3 13 3^{13} 313
3 13 = 3 × 3 × 3 × 3 × 3 × 3 × 3 × 3 × 3 × 3 × 3 × 3 × 3 3^{13}=3\times3\times3\times3\times3\times3\times3\times3\times3\times3\times3\times3\times3 313=3×3×3×3×3×3×3×3×3×3×3×3×3

3 13 = 3 2 × 3 2 × 3 2 × 3 2 × 3 2 × 3 2 × 3 3^{13}=3^2\times3^2\times3^2\times3^2\times3^2\times3^2\times3 313=3

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值