博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
牛客练习赛39 C:流星雨 (概率dp+除法逆元)
阅读量:3899 次
发布时间:2019-05-23

本文共 800 字,大约阅读时间需要 2 分钟。

【题目】

【题解】

概率dp。

图片说明 为第i天下雨的真正概率,由于第i天的概率只与第i-1天有关,所以有
图片说明
复杂度:加上求逆元的复杂度,O(nlogn)。

【代码】

#include 
using namespace std;typedef long long ll;const int mod=1e9+7;const int maxn=100005;ll w[maxn],p[maxn],T[maxn];ll n,a,b,P;ll quick_pow(ll a,ll b){ ll r=1,tmp=a; while(b) { if(b&1) r=r*tmp%mod; tmp=tmp*tmp%mod; b>>=1; } return r%mod;}int main(){ scanf("%lld%lld%lld",&n,&a,&b); P=1ll*a*quick_pow(b,mod-2)%mod; for(int i=1;i<=n;i++) scanf("%lld",&w[i]); for(int i=1;i<=n;i++) { scanf("%lld%lld",&a,&b); p[i]=a*quick_pow(b,mod-2)%mod; } T[1]=p[1]; for(int i=2;i<=n;i++) { T[i]+=T[i-1]*((p[i]+P)%mod)%mod; T[i]+=(1-T[i-1]+mod)%mod*p[i]%mod; T[i]%=mod; } ll ans=0; for(int i=1;i<=n;i++) { ans+=1ll*T[i]*w[i]%mod; ans%=mod; } printf("%lld\n",ans); return 0;}

 

转载地址:http://ubben.baihongyu.com/

你可能感兴趣的文章
从关系型数据库到非关系型数据库
查看>>
【数据库基础】数据库事务 - Transaction
查看>>
【设计模式基础】行为模式 - 3 - 职责链(Chain of responsibility)
查看>>
【Java基础】反射 - Reflection
查看>>
【C++基础】const成员函数
查看>>
【设计模式基础】行为模式 - 5 - 策略(Strategy)
查看>>
【Maven】Archetype
查看>>
【Java.Web】Cookie —— 基础
查看>>
【Tools.Eclipse】代码自动提示
查看>>
【Java.Web】MVC —— Model1 V.S. Model2
查看>>
【Java.Web】MVC —— 基于Servlet Controller的Model2 —— 示例
查看>>
【Java.Web】MVC —— 基于Filter Dispatcher的Model2 —— 示例
查看>>
【Java.Web】MVC —— Action的验证器 —— Validator
查看>>
【Java.Spring.MVC】使用Spring MVC构建Web应用程序
查看>>
【DB.PL/SQL】程序流程控制 —— 异常处理
查看>>
【Java.IO】I/O 【字节】【处理流】 - 之 - 【压缩流】 - ZipInputStream,ZipOutputStream
查看>>
【Java.JDBC/ORM】纯JDBC系统的开发随想
查看>>
【Unix/Linux】【系统】环境变量
查看>>
【Architecture】CPU-bound(计算密集型) 和I/O bound(I/O密集型)
查看>>
【MacOS】Mac 系统下类似于 apt-get 的软件包管理器 -- Homebrew
查看>>