设\(f[i]\)为从\(i\)到\(r+1\)且不走出区间的概率

\(f[i]=p[i]f[i+1]+(1-p[i])f[i-1]\)

\(f[i]-f[i-1]=p[i](f[i+1]-f[i-1])\)

\(f[r+1]=1,f[l-1]=0\)

\(g[i]=f[i]-f[i-1]\)

\(g[i]=p[i](g[i+1]+g[i])\)

\(g[i+1]=\frac{1-p[i]}{p[i]} g[i]\)

\(\sum_{i=l}^{r+1} g[i]=f[r+1]-f[l-1]=1\)

\(lis[l][r]=\sum_{i=l}^{r} \prod_{j=l}^i \frac{1-p[j]}{p[j]}\)

\(f[l]=g[l]=\frac{1}{lis[l][r]+1}\)

线段树维护前缀积、前缀和即可

#include"cstdio"
#include"cstring"
#include"iostream"
#include"algorithm"
using namespace std; const int MAXN=1<<17; int n,m;
int ik[MAXN];
double sum[2][MAXN<<1];
struct rpg{double a,b;}; int read()
{
int x=0;char ch=getchar();
while(ch<'0'||'9'<ch) ch=getchar();
while('0'<=ch&&ch<='9') x=(x<<3)+(x<<1)+(ch^48),ch=getchar();
return x;
} void build(int k,int l,int r)
{
if(l==r){ik[l]=k;return;}
int i=k<<1,mid=l+r>>1;
build(i,l,mid),build(i|1,mid+1,r);
return;
} void cchg(int k,double v)
{
sum[0][k]=sum[1][k]=v;k>>=1;
while(k){
int i=k<<1;
sum[0][k]=sum[0][i]*sum[0][i|1];
sum[1][k]=sum[1][i]+sum[0][i]*sum[1][i|1];
k>>=1;
}return;
} rpg cask(int k,int l,int r,int le,int ri)
{
if(le<=l&&r<=ri) return (rpg){sum[0][k],sum[1][k]};
int i=k<<1,mid=l+r>>1;
if(le<=mid&&mid<ri){
rpg sum=cask(i,l,mid,le,ri),tmp=cask(i|1,mid+1,r,le,ri);
sum.b+=sum.a*tmp.b;
sum.a*=tmp.a;
return sum;
}if(le<=mid) return cask(i,l,mid,le,ri);
return cask(i|1,mid+1,r,le,ri);
} int main()
{
n=read();m=read();
build(1,1,n);
for(int i=1;i<=n;++i){
int a=read(),b=read();
double f=1.0*a/b;
cchg(ik[i],(1.0-f)/f);
}while(m--){
int p=read();
if(p==1){int k=read(),a=read(),b=read();double f=1.0*a/b;cchg(ik[k],(1.0-f)/f);}
else{int l=read(),r=read();printf("%.10lf\n",1.0/(cask(1,1,n,l,r).b+1));}
}return 0;
}

CF712E Memory and Casinos的更多相关文章

  1. CF712E Memory and Casinos 期望概率

    题意:\(n\)个赌场,每个赌场有\(p_{i}\)的胜率,如果赢了就走到下一个赌场,输了就退回上一个赌场,规定\(1\)号赌场的上一个是\(0\)号赌场,\(n\)号赌场的下一个是\(n + 1\) ...

  2. Codeforces Round #370 (Div. 2) E. Memory and Casinos 线段树

    E. Memory and Casinos 题目连接: http://codeforces.com/contest/712/problem/E Description There are n casi ...

  3. 「CF712E」Memory and Casinos「线段树」「概率」

    题解 解法1:(官方做法) 一段区间的\(L\)定义为从最左边开始出发,最左不失败,一直到最右边胜利的概率,\(R\)定义为从最右边开始出发,最左不失败,又回到最右边胜利的概率 考虑一个区间\([l, ...

  4. 【CF712E】Memory and Casinos(数学 期望 DP)

    题目链接 大意 给出一个序列,当你在某个点时,有一个向右走的概率\(P_i\)(向左为\(1-P_i\)), 给出\(M\)个操作,操作有两类: 1 X Y Z:把\(P_X\)的值修改为\(\fra ...

  5. Codeforces 712E Memory and Casinos

    Description There are n casinos lined in a row. If Memory plays at casino \(i\), he has probability ...

  6. cf 712E Memory and Casinos

    题意:有一行$n(n \leq 100000)$个方格,从左往右第$i$个方格的值为$p_i(p_i = \frac{a}{b}, 1 \leq a < b \leq 1e9)$,有两种操作,一 ...

  7. Codeforces Round #370 (Div. 2) E. Memory and Casinos (数学&&概率&&线段树)

    题目链接: http://codeforces.com/contest/712/problem/E 题目大意: 一条直线上有n格,在第i格有pi的可能性向右走一格,1-pi的可能性向左走一格,有2中操 ...

  8. CF712E [Memort and Casinos]

    题意 每次询问一段区间[l,r],求从最左边走到最右边(r+1)的概率(若走到l-1,则GG了),每个点上写有向右走的概率.支持单点修改. 思考 若只查询一次,那只要知道每个点在不走到l-1的情况下, ...

  9. Memory and Casinos CodeForces - 712E (概率,线段树)

    题目链接 题目大意:$n$个点, 每个点$i$有成功率$p_i$, 若成功走到$i+1$, 否则走到走到$i-1$, 多组询问, 求从$l$出发, 在$l$处不失败, 最后在$r$处胜利的概率 设$L ...

随机推荐

  1. 不同Mesh技术的比较-总结版

    引言 在过去的几年里,Mesh 网络逐渐变得流行,随之会有越来越多的无线产品面世.Mesh 网络技术作为一种无线自组网技术是物联网的核心技术.物联网的概念现在也逐渐贴近人们的生活, 据预测 2011 ...

  2. js中cookie,localStorage(sessionStorage)的存取

    一.cookie (原生的不好用,自己简单封装) 1. 存cookie的方法: function setCookie(c_name,value,expiredays) { var exdate=new ...

  3. 不能将 CHECK_POLICY 和 CHECK_EXPIRATION 选项设为 OFF (关)

    数据库用户信息死活无法修改..老是出现错误当 MUST_CHANGE 为 ON (开)时,不能将 CHECK_POLICY 和 CHECK_EXPIRATION 选项设为 OFF (关). (Micr ...

  4. 前端安全 -- XSS攻击

    XSS漏洞是最广泛.作用最关键的web安全漏洞之一.在绝大多数网络攻击中都是把XSS作为漏洞链中的第一环,通过XSS,黑客可以得到的最直接利益就是拿到用户浏览器的cookie,从而变相盗取用户的账号密 ...

  5. (转)Python3.5 queue模块详解

    原文:https://www.cnblogs.com/CongZhang/p/5274486.html queue介绍 queue是python中的标准库,俗称队列,可以直接import 引用,在py ...

  6. spring cloud开发、部署注意

    一.开发时,配置服务的配置使用本地路径,不使用svn和git,因为后者每个开发人员都会修改配置,导致别人也拿到其他人修改的配置,本地配置示例如下: spring: application: name: ...

  7. ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / PING / QUIT allowed in this context

    封装Redis发布订阅时,SUB时,又想探测具体Channel的状态,于是执行PUBSUB CHNNALES命令,报 ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / ...

  8. CentOS 部署 Python3 的一些注意事项

    环境:centos6.7https://github.com/vinta/awesome-pythonhttps://github.com/PyMySQL/PyMySQLhttps://github. ...

  9. Vue2.0-token权限处理

    token一种身份的验证,在大多数网站中,登录的时候都会携带token,去访问其他页面,token就想当于一种令牌.可以判断用户是否登录状态.本次页面是通过Element-ui搭建的登录界面 当用户登 ...

  10. SkipList 跳跃表

    引子 考虑一个有序表:14->->34->->50->->66->72 从该有序表中搜索元素 < 23, 43, 59 > ,需要比较的次数分别为 ...