出处不详 投篮

news2024/12/23 12:34:36

目录

  • 投篮
    • 题目描述
      • 背景
      • 输入
      • 输出
      • 数据范围
    • 题解
      • 解法
    • 打赏

投篮

题目描述

背景

现在你得到了一个可以阻拦投篮的宝物,它会在投球后把篮球传送回运动员手上,但是宝物的成功率和篮球在空中运动的时间有关,并且在特定的时间点成功的几率是固定的,例如在第 3 3 3秒成功率是 1 4 1 \over 4 41,那么不论是第几次投球,在篮球投出后的第 3 3 3秒,宝物成功的几率都是 1 4 1 \over 4 41
宝物每秒初可以使用一次,例如在投球后的第 1 1 1秒时使用失败,可以在第 2 2 2秒接着使用,直到阻拦成功或投篮成功,且投球瞬间可以阻拦,但是球击中篮筐的瞬间不可阻拦。并且一旦篮球回到运动员手上,他会立马再次投球。现在你想知道使用宝物的情况下,运动员从第一次投球到投篮成功的期望时间间隔

输入

  1. 第一行一个整数 n n n,表示篮球到篮筐的时间;
  2. 接下来 n n n行每行包含两个整数 x i , y i x_i , y_i xi,yi,二者之商 x i y i x_i \over y_i yixi表示第 i i i秒初宝物成功的概率

输出

输出一个整数表示答案(答案是一个有理数,请输出答案对质数 998244353 998244353 998244353取模的结果)

数据范围

1 ≤ n ≤ 1 e 5 , 1 ≤ x i < y i ≤ 1 e 9 1 \le n \le 1e5 , 1 \le x_i < y_i \le 1e9 1n1e5,1xi<yi1e9

题解

解法

每次投球之后击中篮筐且不被阻拦的概率是一样的,而求期望需要算出第一次投球后经过各种情况最终投中的概率再分别乘上各自的用时,因而这些情况中最后一次投球都击中了篮筐,所以对于这些情况,它们最后一次投球后的概率计算都是一样的
所以可以按照次数对这些不同的情况进行分类,分别算出期望时间再相加

  1. 若第一次投球击中,则概率为 ∏ i = 1 n ( 1 − x i y i ) \prod_{i = 1}^n (1 - {x_i \over y_i}) i=1n(1yixi),将其记作 m m m,那么第一次击中这类情况对最终期望的贡献为 m ∗ n m * n mn
  2. 若第二次投球击中,则需在一次击中的基础上向前增加一次未击中的投球,而这次未击中的投球有很多种情况,它们的概率之和为 1 − m 1 - m 1m,所以二次击中的概率为 ( 1 − m ) m (1 - m)m (1m)m。由于那次未击中的投球存在某些情况耗费时间,所以二次击中这类情况的贡献不能简单视为 ( 1 − m ) m ∗ n (1 - m)m* n (1m)mn。易知那次未击中的投球共有 n n n种情况,由第 i i i种情况推得的二次击中的贡献为 [ ∏ j = 1 i − 1 ( 1 − x j y j ) ] ∗ x i y i ∗ m ∗ ( n + i − 1 ) [\prod_{j = 1}^{i - 1} (1 - {x_j \over y_j})] * {x_i \over y_i} * m * (n + i - 1) [j=1i1(1yjxj)]yixim(n+i1),所以贡献之和为:
    ∑ i = 1 n { [ ∏ j = 1 i − 1 ( 1 − x j y j ) ] ∗ x i y i ∗ m ∗ ( n + i − 1 ) } = m ∗ n ∗ ∑ i = 1 n { [ ∏ j = 1 i − 1 ( 1 − x j y j ) ] ∗ x i y i } + m ∗ ∑ i = 1 n { [ ∏ j = 1 i − 1 ( 1 − x j y j ) ] ∗ x i y i ∗ ( i − 1 ) } = m ∗ n ∗ ( 1 − m ) + m ∗ ∑ i = 1 n { [ ∏ j = 1 i − 1 ( 1 − x j y j ) ] ∗ x i y i ∗ ( i − 1 ) } \begin{aligned} \sum_{i = 1}^n \{ [\prod_{j = 1}^{i - 1} (1 - {x_j \over y_j})] * {x_i \over y_i} * m * (n + i - 1) \} & = m * n * \sum_{i = 1}^n \{ [\prod_{j = 1}^{i - 1} (1 - {x_j \over y_j})] * {x_i \over y_i} \} + m * \sum_{i = 1}^n \{ [\prod_{j = 1}^{i - 1} (1 - {x_j \over y_j})] * {x_i \over y_i} * (i - 1) \}\\ & = m * n * (1 - m) + m * \sum_{i = 1}^n \{ [\prod_{j = 1}^{i - 1} (1 - {x_j \over y_j})] * {x_i \over y_i} * (i - 1) \} \end{aligned} i=1n{[j=1i1(1yjxj)]yixim(n+i1)}=mni=1n{[j=1i1(1yjxj)]yixi}+mi=1n{[j=1i1(1yjxj)]yixi(i1)}=mn(1m)+mi=1n{[j=1i1(1yjxj)]yixi(i1)}

依此类推,设 k = ∑ i = 1 n { [ ∏ j = 1 i − 1 ( 1 − x j y j ) ] ∗ x i y i ∗ ( i − 1 ) } k = \sum_{i = 1}^n \{ [\prod_{j = 1}^{i - 1} (1 - {x_j \over y_j})] * {x_i \over y_i} * (i - 1) \} k=i=1n{[j=1i1(1yjxj)]yixi(i1)},因为 1 − m , k 1 - m , k 1m,k都是常数,所以第 i ( i > 1 ) i(i > 1) i(i>1)次投球击中的概率和贡献可以由第 i − 1 i - 1 i1次投球击中的概率和贡献线性表示,设第 i i i次投球击中的概率和贡献分别为 p i , a i p_i , a_i pi,ai,即 [ p i a i ] = [ 1 − m 0 k 1 − m ] [ p i − 1 a i − 1 ] ( i > 1 ) \begin{bmatrix} p_i \\ a_i \end{bmatrix} = \begin{bmatrix} 1 - m & 0 \\ k & 1 - m \end{bmatrix} \begin{bmatrix} p_{i - 1} \\ a_{i - 1} \end{bmatrix}(i > 1) [piai]=[1mk01m][pi1ai1](i>1)
[ 1 − m 0 k 1 − m ] i = [ ( 1 − m ) i 0 i ( 1 − m ) i − 1 k ( 1 − m ) i ] \begin{bmatrix} 1 - m & 0 \\ k & 1 - m \end{bmatrix}^i = \begin{bmatrix} (1 - m)^i & 0 \\ i(1 - m)^{i - 1}k & (1 - m)^i \end{bmatrix} [1mk01m]i=[(1m)ii(1m)i1k0(1m)i],因此:

[ p i a i ] = [ 1 − m 0 k 1 − m ] i − 1 [ p 1 a 1 ] = [ ( 1 − m ) i − 1 0 ( i − 1 ) ( 1 − m ) i − 2 k ( 1 − m ) i − 1 ] [ m m n ] = [ m ( 1 − m ) i − 1 m ( 1 − m ) i − 2 [ k ( i − 1 ) + n ( 1 − m ) ] ] \begin{aligned} \begin{bmatrix} p_i \\ a_i \end{bmatrix} & = \begin{bmatrix} 1 - m & 0 \\ k & 1 - m \end{bmatrix}^{i - 1} \begin{bmatrix} p_1 \\ a_1 \end{bmatrix} \\ & = \begin{bmatrix} (1 - m)^{i - 1} & 0 \\ (i - 1)(1 - m)^{i - 2}k & (1 - m)^{i - 1} \end{bmatrix} \begin{bmatrix} m \\ mn \end{bmatrix} \\ & = \begin{bmatrix} m (1 - m)^{i - 1} \\ m(1 - m)^{i - 2}[k(i - 1) + n(1 - m)] \end{bmatrix} \end{aligned} [piai]=[1mk01m]i1[p1a1]=[(1m)i1(i1)(1m)i2k0(1m)i1][mmn]=[m(1m)i1m(1m)i2[k(i1)+n(1m)]]
所以最终的期望为:
∑ i = 1 ∞ m ( 1 − m ) i − 2 [ k ( i − 1 ) + n ( 1 − m ) ] = m n ∑ i = 1 ∞ ( 1 − m ) i − 1 + m k ∑ i = 0 ∞ ( i + 1 ) ( 1 − m ) i = m n 1 − ( 1 − m ) ∞ 1 − ( 1 − m ) + m k ∑ i = 0 ∞ ( − 1 ) i ( i + 1 ) ! i ! ( m − 1 ) i = m n m + m k ∗ 1 m 2 = n + k m \begin{aligned} \sum_{i = 1}^\infty m(1 - m)^{i - 2}[k(i - 1) + n(1 - m)] & = mn \sum_{i = 1}^\infty (1 - m)^{i - 1} + mk \sum_{i = 0}^\infty (i + 1)(1 - m)^i \\ & = mn {1 - (1 - m)^\infty \over 1 - (1 - m)} + mk \sum_{i = 0}^\infty {(-1)^i (i + 1)! \over i!} (m - 1)^i \\ & = {mn \over m} + mk * {1 \over m^2}\\ & = n + {k \over m} \end{aligned} i=1m(1m)i2[k(i1)+n(1m)]=mni=1(1m)i1+mki=0(i+1)(1m)i=mn1(1m)1(1m)+mki=0i!(1)i(i+1)!(m1)i=mmn+mkm21=n+mk
由于 k , m k , m k,m均为分数,所以各需要两个变量来储存,分别表示分子和分母,答案要求的是有理数对 998244353 998244353 998244353取模的结果,所以需要使用乘法逆元
代码如下:

#include<cstdio>

#define il inline
#define ll long long

const int mod = 998244353;

il int read() {
    int x = 0;
    char c = getchar();
    while(c < '0' || c > '9') c = getchar();
    while(c >= '0' && c <= '9') x = (x << 1) + (x << 3) + (c ^ 48), c = getchar();
    return x;
}

il int qpow(int x, int y) {
    int ret = 1;
    for(int i = x; y; i = (ll)i * i % mod, y >>= 1)
        if(y % 2) ret = (ll)ret * i % mod;
    return ret;
}

int n, ma = 1, mb = 1, ka, kb = 1;

int main() {
    n = read();
    for(int i = 1; i <= n; ++i) {
        int a = read() % mod, b = read() % mod;
        ka = ((ll)ka * mb % mod * b % mod + (ll)kb * ma % mod * a % mod * (i - 1) % mod) % mod;
        kb = (ll)kb * mb % mod * b % mod;
        ma = (ll)ma * ((b - a + mod) % mod) % mod;
        mb = (ll)mb * b % mod;
    }

    int ansb = (ll)ma * kb % mod, ansa = ((ll)n * ansb % mod + (ll)mb * ka % mod) % mod;
    printf("%d", (ll)ansa * qpow(ansb, mod - 2) % mod);     //用欧拉定理求乘法逆元
    return 0;
}

打赏

制作不易,若有帮助,欢迎打赏!
赞赏码

支付宝付款码

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大势智慧与山东省国土测绘院签署战略合作协议

9月6日&#xff0c;山东省国土测绘院&#xff08;后简称山东院&#xff09;与武汉大势智慧科技有限公司&#xff08;后简称大势智慧&#xff09;签署战略合作协议。 山东院院长田中原、卫星应用中心主任相恒茂、基础测绘中心主任魏国忠、卫星应用中心高级工程师张奇伟&#xf…

S32G EB tresos AutoCore下载和激活方法

文章目录 1. 下载1.1 EB tresos AutoCore下载1.2 EB激活工具&#xff08;EB_Client_License_Administrator&#xff09;下载 2 安装3 激活4 展示 本文将介绍EB tresos的AutoCore&#xff08;CP BSW配置工具&#xff09;和MCAL驱动安装包的下载、安装和激活方法。 更多AUTOSAR C…

lightdm , xrandr , startx 桌面管理器,窗口管理器

问题&#xff1a; 了解这几个的含义。 显示服务器 这个不是很明白 显示管理器&#xff0c; 知道就行了&#xff0c;也不是很明白。 窗口管理器。 桌面管理器。 这个其实就是 桌面环境了&#xff0c; 我们的板卡上使用的是xface 。 这个 xface 是一个集合&#xff0c;这里面…

JavaScript --函数的作用域(全局和局部)

全局作用域 全局作用域&#xff0c;就算不在一个script标签也能调用 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta nam…

计算左边(比自己小的元素)的最长距离

前言&#xff1a;一般做的题目都是使用单调栈来求出距离这个点最近的那个比这个数大或小的元素&#xff0c;但是如果是需要找到最远的那个元素呢&#xff1f;我们可以用到类似逆序对的思路&#xff0c;我们先进行排序从小到大&#xff0c;接着我们先处理左边&#xff0c;每次维…

RSTP/MSTP 笔记和配置实验

RSTP: Rapid Spanning Tree Protocol &#xff08;802.1w&#xff09; 一、问题: Why RSTP 可以快速切换&#xff1f; 1、端口角色增加: 两种到五种 从 STP 的两种角色: DP&#xff1a;Designated Port RP&#xff1a;Root Port 增加到了五种角色&#…

亚信安全出席第21届中国网络安全年会 荣获4项重量级荣誉

近日&#xff0c;第21届中国网络安全年会暨国家网络安全宣传周网络安全协同治理分论坛在广州召开。年会以“协同共建网络安全防御体系”为主题&#xff0c;与2024年度国家网络安全宣传周活动衔接联动。亚信安全受邀出席年会&#xff0c;一举荣获CNVD年度最具价值漏洞报送、CNVD…

MySQL查询执行(四):查一行也很慢

假设存在表t&#xff0c;这个表有两个字段id和c&#xff0c;并且我在里面插入了10万行记录。 -- 创建表t CREATE TABLE t (id int(11) NOT NULL,c int(11) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB;-- 通过存储过程向t写入10w行数据 delimiter ;; create procedure idat…

C++速通LeetCode简单第11题-对称二叉树

递归法&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) …

探索螺钉设计:部分螺纹与全螺纹,哪种更适合你的项目?

为什么有些螺钉有部分螺纹? 螺钉由头部、柄部和尖端组成&#xff0c;是世界上zui常用的紧固件之一。与螺栓一样&#xff0c;它们旨在将多个对象或表面连接在一起。但是&#xff0c;在比较不同类型的螺钉时&#xff0c;您可能会注意到其中一些都具有部分螺纹杆。 什么是螺柄&a…

第3篇:【系统分析师】数据库系统

基本概念 三级模式-两级映像 数据库设计 掌握数据库设计的步骤顺序&#xff0c;以及各个阶段的产出物。在逻辑结构设计中做范式处理 数据库模型 E-R模型 关系模型 关系代数&#xff08;sql语言&#xff09; 规范化 函数依赖&#xff0c;键与约束&#xff0c;模式分解 范式 …

国家网信办就人工智能生成合成内容标识征求意见

国家互联网信息办公室发布《人工智能生成合成内容标识办法&#xff08;征求意见稿&#xff09;》&#xff0c;该办法根据《中华人民共和国网络安全法》、《互联网信息服务算法推荐管理规定》、《互联网信息服务深度合成管理规定》、《生成式人工智能服务管理暂行办法》等法律法…

【案例71】配置https之后 IE打不开登陆页面 Uclient没有问题

问题现象 配置https之后 IE打不开登陆页面 Uclient没有问题。 jvm控制台 显示如下 basic: 已调整小应用程序大小且已将其添加到父容器中 basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 170755 us, pluginInit dt 722531 us, TotalTime: 89328…

教你制作动态可以点击的PDF样本图册

普通的PDF文档虽然方便&#xff0c;但静态的页面往往难以满足一些展示和功能性的需求。今天&#xff0c;就让我来带你了解一下如何制作动态可点击的PDF样本图册&#xff0c;让我们的PDF文档焕发新的活力&#xff01; 首先&#xff0c;我们需要明确制作动态可点击PDF的目的是什…

【MPC】无人机模型预测控制复现Data-Driven MPC for Quadrotors项目(Part 1)

无人机模型预测控制复现Data-Driven MPC for Quadrotors项目 参考链接背景和问题方法与贡献实验结果安装ROS创建工作空间下载RotorS仿真器源码和依赖创建Python虚拟环境下载data_driven_mpc仓库代码下载并配置ACADO求解器下载并配置ACADO求解器的Python接口下载并配置rpg_quadr…

时间安全精细化管理平台存在未授权访问漏洞

漏洞描述 登录--时间&amp;安全精细化管理平台存在未授权访问漏洞导致与员工信息泄露 FOFA&#xff1a; body"登录--时间&amp;安全精细化管理平台" POC IP/acc/_checkinoutlog_/

一分钟教你 全平台隔空投送文件 LoaclSend保姆级教程

主要内容 什么是LoaclSend 详细步骤 1.下载LoaclSend 2.使用MoleSDN 异地访问 3.一切就绪&#xff0c;打开LocalSend 发送文件 什么是LoaclSend 一款开源的文件传输工具&#xff0c;旨在提供简单、安全、快速的本地文件传输。 LocalSend可以免费使用且无需注册登录&…

element-plus表单使用show-overflow-tooltip,避免占满屏幕,需要设置宽度

在表单中&#xff0c;<el-table-clumn>中添加show-overflow-tooltip&#xff0c;可以实现表格内容过多的问题。 属性官方解释&#xff1a;是否隐藏额外内容并在单元格悬停时使用 Tooltip 显示它们。 出现的问题&#xff1a; 使用了该属性之后&#xff0c;弹出的详细内…

设置使用阿里云服务器DNS

由于云服务器是从腾讯云迁移到阿里云&#xff0c;然后使用ssl验证时一直无法使用dns验证&#xff0c;也无法创建三级域名&#xff0c;原来需要把阿里云服务器改成阿里云的dns使用 如果使用其他服务器DNS会下面会显示当前DNS服务器&#xff0c;

Linux进阶命令-sortwc

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 经过上一章Linux日志的讲解&#xff0c;我们对Linux系统自带的日志服务已经有了一些了解。我们接下来将讲解一些进阶命令&am…