当前位置: 首页 > news >正文

抽卡【牛客tracker 每日一题】

抽卡

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

王子连接的国服终于上线啦~
已知王子连接的抽卡系统如下:
共有n nn个卡池,第i ii个卡池共有a i a_iai种卡,每张卡的出货率都是相等的(也就是说该卡池单次抽卡,每种卡出货率是1 / a i 1/a_i1/ai)。
i ii个卡池中,你有b i b_ibi种卡是自己很想要的。
现在的问题是,如果每个卡池里都单抽一次,能抽到自己想要的卡的概率是多少?
可以证明,这个概率一定可以写成a / b a/ba/b形式的分数。最后输出该分数在模10 9 + 7 10^9+7109+7意义下的值就可以了。
即输出满足b ∗ x % 1000000007 = a b∗x\%1000000007=abx%1000000007=a的最小非负整数x xx

输入描述:

第一行输入一个正整数n ( 1 ≤ n ≤ 100000 ) n(1≤n≤100000)n1n100000

第二行输入n nn个正整数a i a_iai

第三行输入n nn个正整数b i b_ibi,代表第i ii个卡池的你想要的卡种类数量。( 1 ≤ b i ≤ a i ≤ 100000 ) (1≤b_i≤a_i≤100000)1biai100000

输出描述:

一个整数,表示该概率在模10 9 + 7 10^9+7109+7意义下的值。

示例1

输入:

2 3 4 1 1

输出:

500000004

说明:

能抽到自己想要的卡的概率是1 / 2 1/21/2,由于2 ∗ 500000004 % 1000000007 = 1 2*500000004\%1000000007=12500000004%1000000007=1,故输出500000004 500000004500000004

解题思路

本题核心是对立事件概率计算+模逆元求解抽卡概率,适配大数取模要求。直接计算抽到想要卡的概率较复杂,转化为对立事件:总概率= 1 − = 1 -=1所有卡池都抽不到想要卡的概率乘积。每个卡池抽不到的概率为( a i − b i ) / a i (a_i-b_i)/a_i(aibi)/ai,因模数10 9 + 7 10^9+7109+7是质数,用快速幂计算a i a_iai的乘法逆元实现分数取模。遍历所有卡池累乘抽不到的概率,最后用1 11减去该结果并对模数取模,得到最终答案。算法时间复杂度O ( n log ⁡ p ) O(n\log p)O(nlogp),完美适配n ≤ 10 5 n≤10^5n105的大数据规模。

总结

核心逻辑:利用对立事件简化概率计算,通过乘法逆元处理模运算下的分数除法。
关键操作:快速幂求逆元,累乘所有卡池抽不到的概率,计算最终合法概率。
效率保障:线性遍历卡池,快速幂对数级计算逆元,高效满足题目时间与数据限制。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefvector<vector<ll>>vt;typedefpair<ll,ll>pll;constll N=1e5+10;constll p=1e9+7;constll INF=1e18;constll M=2e3+10;ll q1[N],q2[N];llqmi(ll a,ll b){ll res=1;while(b>0){if(b&1)res=(res*a)%p;a=(a*a)%p;b>>=1;}returnres;}intmain(){ll n;cin>>n;for(ll i=1;i<=n;i++)cin>>q1[i];for(ll i=1;i<=n;i++)cin>>q2[i];ll ans=1;for(ll i=1;i<=n;i++){ll x=(q1[i]-q2[i])*qmi(q1[i],p-2)%p;ans=(ans*x)%p;}cout<<(1-ans+p)%p;return0;}
http://www.jsqmd.com/news/609549/

相关文章:

  • 从源码到实践:iproute2编译安装全攻略
  • P3705 [SDOI2017] 新生舞会 - Link
  • 剪流AI智能手机对自媒体创作者的具体帮助:实现降本增效的全面解析
  • YOLOv11 改进 - 主干网络 SwinTransformer 移位窗口层次化视觉变换器:层次化特征提取增强多尺度目标感知,优化复杂场景检测
  • 2025届必备的六大降AI率神器推荐
  • Qt源码中的EQ曲线升级版:精细编码与详尽注释
  • Ostrakon-VL-8B模型API接口详解:参数配置与性能调优
  • CKKS 同态加密数学基础推导质
  • YOLOv11 改进 - 主干网络 FasterNet (基于PConv部分卷积的神经网络):轻量级设计优化内存访问效率,实现精度与速度双重提升
  • 部署一次D365程序,最快也得2小时,怎么快速更新数据?以前AX写个Job就好了
  • 基于光伏MMC并网系统的两级式交流故障穿越策略研究
  • 基于IPC标准的离子污染度检测:原理、方法与判据
  • Qwen2.5-VL-7B-Instruct多模态推理避坑指南:解决Batch推理中的addCriterion字符和输出截断问题
  • 自动驾驶模仿学习避坑指南:为什么你的多模态融合模型总在十字路口“翻车”?
  • 从Linux到单片机:嵌入式分层设计的底层逻辑与简化实践
  • P4559 [JSOI2018] 列队 - Link
  • 智能仓储搬运机器人市场预测:14.3亿美元规模的技术迭代
  • 告别虚拟机!在Windows 11上零配置搭建Masm汇编实验环境(附保姆级图文教程)
  • MATLAB-Simulink主动均衡电路模型(动力锂电池模组16节电芯): 模糊控制及多种比...
  • C# 13主构造函数调试实战:3分钟定位null引用异常根源,附可复用的DiagnosticSource注入模板
  • 微信聊天记录安全备份完整指南:使用WeChatExporter开源工具保护数字记忆
  • Python+PyQt5打造局域网电脑唤醒工具:从UI设计到一键唤醒全流程
  • 2026届最火的六大AI科研助手解析与推荐
  • 2026年国学热再升温:这届儒家经典诵读大会为何吸引超10万
  • 09CuPCrNi-A耐候钢 厂家推荐上海瑞产实业有限公司
  • DOL-CHS-MODS整合包:2024一站式解决方案,3大优势助你轻松体验Degrees of Lewdity
  • FPGA JESD204B链路调试实战:从时钟配置到同步状态解析
  • 汽车电子抗扰度实战:ISO 11452、ISO 7637与CISPR 25标准的选择与协同应用
  • 2026届最火的六大降AI率平台解析与推荐
  • FOC开环控制避坑指南:为什么你的电机转速不稳定?(附解决方案)