签到(乘法逆元)

2024-04-24 14:32
文章标签 乘法 签到 逆元

本文主要是介绍签到(乘法逆元),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

夭寿了多会儿的题我现在才想起补orz

链接:https://ac.nowcoder.com/acm/contest/275/A
来源:牛客网

题目描述
你在一栋楼房下面,楼房一共有n层,第i层每秒有pi的概率会扔下一个东西并砸到你
求第一秒内你被砸到的概率
输入描述:
第一行一个整数n
之后有n行,第i+1行有两个整数ai,bi,表示在这里插入图片描述
输出描述:
设答案为,你只需要找到一个最小的非负整数T,使得
输出这个T就行了
示例1
输入

复制
2
1 2
1 2
输出

复制
750000006
说明

一共只有如下状态:

  1. 第一层和第二层都扔了下来

  2. 第一层扔了下来

  3. 第二层扔了下来

  4. 第一层和第二层都没有扔下来

以上四种都是等概率发生的

除了第四种情况外,都会被砸到

因此被砸到的概率是 3/4,这个值在模1e9+7意义下就是750000006
备注:
数据范围
0 ≤ n ≤ 105
1 ≤ ai ≤ bi ≤ 105

题意很简单orz虽然我概率菜的一比但也知道是一减不被砸中的概率相乘
重点就是对ai/bi的取模orz众所周知除法取模就是乘以乘法逆元,又因为费马小定理可知a*ap-2≡1(mod p)

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll mod=1e9+7;
int n;
ll a,b,res;
ll pow_mod(ll a,ll b){ll ans=1;while(b){if(b&1)ans=ans*a%mod;a=a*a%mod;b>>=1;}return ans;
}
int main(){while(cin>>n){res=1;while(n--){cin>>a>>b;res=res*a%mod*pow_mod(b,mod-2)%mod;}cout<<(res+mod)%mod<<endl;}return 0;
}

这篇关于签到(乘法逆元)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/932021

相关文章

hdu4828(卡特兰数+逆元)

这题的前几个数据分别为1,2,5,14,32......................然后确定这是个卡特兰数列 下面来介绍下卡特兰数,它的递推式为f[i+1] = f[i]*(4*n - 6)/n,其中f[2] = f[3] =1;f[4] = 2;f[5] = 14;f[6] = 32.................................. 但是这题的n太大了,所以要用到逆元,

hdu4869(逆元+求组合数)

//输入n,m,n表示翻牌的次数,m表示牌的数目,求经过n次操作后共有几种状态#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#includ

hdu 6198 dfs枚举找规律+矩阵乘法

number number number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description We define a sequence  F : ⋅   F0=0,F1=1 ; ⋅   Fn=Fn

高精度加法,乘法,阶乘

#include <iostream>#include <map>#include <string>#include <algorithm>using namespace std;const int Max = 50000;string str1,str2;/***********乘法***********/void chenfa(){cin >> str1>>str2;int a

每日一题~cf 970 div3 (A思维,B小模拟,C二分,D排列数建图成环,E 26个字母暴力+前缀和,F 逆元,G 数论gcd )

A 题意: 有 a 个1 ,b 个2.问是否能将这些数划分为两个数值相等的集合。 输出 YES 或者 NO —————— 问题等价于 将数组 分成两个数值相同的数组。所以sum 应该是偶数。也就是说 1 的个数是偶数。在i1的个数是偶数的情况下,将 2 分成两份,如果2 的个数是偶数,OK。如果是奇数那么需要1来补齐,如果1 的个数大于等于2那么可以补齐。(1 的个数是偶数,需要2个1来补齐,剩下

乘法问题c++

题目描述 小 A 最近刚刚学习了乘法,为了帮助他练习,我们给他若干个正整数,并要求他将这些数乘起来。 对于大部分题目,小 A 可以精准地算出答案,不过,如果这些数的乘积超过 ,小 A 就不会做了。 请你写一个程序,告诉我们小 A 会如何作答。 输入 第一行一个整数 n,表示正整数的个数。 接下来 n行,每行一个整数a 。小 A 需要将所有的 a乘起来。 保证n<=50,a<=100. 输出

黑马点评10——用户签到-BitMap数据结构

文章目录 BitMap用法签到功能签到统计 BitMap用法 其实数据库完全可以实现签到功能 但签到数据比较大,借鉴签到卡的思想 布隆过滤器也是使用BitMap实现的. 签到功能 因为是当前用户的当天,所以保存需要的年月日不需要参数,可以直接获取。 @Overridepublic Result sign() {// 1. 获取当前登录用户Long userId

机器学习经典算法之-----最小二乘法

一.背景    5月9号到北大去听hulu的讲座《推荐系统和计算广告在视频行业应用》,想到能见到传说中的项亮大神,特地拿了本《推荐系统实践》求签名。讲座开始,主讲人先问了下哪些同学有机器学习的背景,我恬不知耻的毅然举手,真是惭愧。后来主讲人在讲座中提到了最小二乘法,说这个是机器学习最基础的算法。神马,最基础,我咋不知道呢! 看来以后还是要对自己有清晰认识。    回来赶紧上百度,搜了下什么是最

【高精度】-DLUTOJ-1176-大数乘法

题目链接:http://acm.dlut.edu.cn/problem.php?id=1176 题目描述:赤裸的大数乘法 解题思路: 突然想到自己没写过高精度乘法,就回咱们自己OJ上找出了这道题,赤裸的高精度乘法而已,没想到依然觉得不好写,准确说来是我从小到大算乘法的习惯使我产生了错觉:“ 想写大数乘法就得先写一个大数加法出来 ”。喂!我短路了半天才想明白,int 数组里可以存个两位数啊,再

开源-基于J2EE分布式架构的会议管理系统,支持会议资源管理,预订会议,冲突检测,提醒与签到

自20世纪末至21世纪初,数字化和互联网技术的迅猛发展彻底改变了工作方式和商业模式。企业迅速采用电子邮件、即时通讯和在线会议等数字工具以提升沟通效率。 在信息爆炸的时代,工作中面临的信息量剧增,而企业对效率和生产力的要求也日益提高。有效的会议管理和办公自动化成为缩短周期、减少错误和提升决策质量的关键。云计算的广泛应用和移动设备的普及使得办公软件需要跨平台运行,无缝集成,以便用户能够在各种设备上高