概述
链接: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
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll mod=1e9+7;
ll qpow(ll a,ll b){
ll ans=1;
while(b){
if(b&1){
ans=a*ans%mod;
}
a=a*a%mod;
b/=2;
}
return ans;
}
int main(){
int n;
cin>>n;
int ans=1;
while(n--){
int x,y;
cin>>x>>y;
x=y-x;
ans=(ans*(x*(qpow(y,mod-2))%mod)%mod)%mod;
}
cout<<(1-ans+mod)%mod<<endl;
}
n = int(input())
ans = 1
mod = int(1e9+7)
for i in range(n):
a,b = map(int,input().split(' '))
ans *= (b-a)*pow(b,mod-2,mod)
print((1-ans)%mod)
最后
以上就是无情店员为你收集整理的牛客小白赛-签到的全部内容,希望文章能够帮你解决牛客小白赛-签到所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复