Luogu5249

轮流开枪打一个环上的人 , 每次\(p\)的概率打死 , \(p\)始终相同 , 从第\(1\)个人开始 , 求第\(k\)个人成为唯一幸存者的概率


\(19.3.30\)

官方题解先递推出\(f[n]\) , \(f[1]\)用到\(f[n]\) , 套上一个\(n\)的循环 , 总共是\(O(n^2)\)的

设\(f1[i]\)表示\([1,k-1]\)在\(i\)轮以内全死的概率 , \(f2[i]\)表示\([k+1,n]\)在\(i\)轮以内全死的概率 ,

\(s[i]\)表示某一个人在\(i\)轮以内死掉的概率 , 易知\(s[i]=1-(1-p)^i\)

\(f1[i]=s[i]^{(k-1)}\)

\(f2[i]=s[i]^{(n-k)}\)

枚举第\(k\)个人第\(i\)轮死 , \(ans=\sum{f1[i]*f2[i-1]*(s[i]-s[i-1])}\)

\(10^4\)个人枚举\(10^6\)轮就差不多了 , \(f1\)和\(f2\)的预处理是\(O(nl_{og}n)\)的


\(19.4.4\)

首先可以容易地得出某一个人在\(i\)轮以内死掉的概率\(s[i]=1-(1-p)^i\) , 以及在第\(i\)轮死掉的概率\(s[i]-s[i-1]\)

也许就能推出连续一段人在\(i\)轮死掉的概率\(s[i]^{r-l+1}\)

考虑怎么枚举比较方便 : 枚举自己在第\(i\)轮死 ,

那么在此之前其他的都要死 , 即前面的要在\(i\)轮内死 , 后面的要在\(i-1\)轮内死

枚举自己的状态 , 考虑前面和后面要满足的条件 , 参考[JSOI2018]机器人

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+7;
int n,k;
double p,sp,ans,s[N],pw1[N],pw2[N];
double qpow(double a,int b)
{
double ret=1;
while(b)
{
if(b&1)ret*=a;
a*=a,b>>=1;
}
return ret;
}
int main()
{
cin>>p>>n>>k;
if(n==1){cout<<1;return 0;}
for(int i=1;i<=1e5;i++)s[i]=1-qpow(1-p,i);
for(int i=1;i<=1e5;i++)pw1[i]=qpow(s[i],k-1),pw2[i]=qpow(s[i],n-k);
for(int i=1;i<=1e5;i++)
if(k==n)ans+=pw1[i]*(s[i]-s[i-1]);
else if(k==1)ans+=pw2[i-1]*(s[i]-s[i-1]);
else ans+=pw1[i]*pw2[i-1]*(s[i]-s[i-1]);
printf("%0.9f",ans);
}

[LnOI2019]加特林轮盘赌的更多相关文章

  1. [LnOI2019]加特林轮盘赌(DP,概率期望)

    [LnOI2019]加特林轮盘赌(DP,概率期望) 题目链接 题解: 首先特判掉\(p=0/1\)的情况... 先考虑如果\(k=1\)怎么做到\(n^2\)的时间复杂度 设\(f[i]\)表示有\( ...

  2. 洛谷 P5249 [LnOI2019]加特林轮盘赌 题解【概率期望】【DP】

    很有意思的题目. 题目背景 加特林轮盘赌是一个养生游戏. 题目描述 与俄罗斯轮盘赌等手枪的赌博不同的是,加特林轮盘赌的赌具是加特林. 加特林轮盘赌的规则很简单:在加特林的部分弹夹中填充子弹.游戏的参加 ...

  3. 洛谷 P5249 - [LnOI2019]加特林轮盘赌(期望 dp+高斯消元)

    题面传送门 期望真 nm 有意思,所以蒟蒻又来颓期望辣 先特判掉 \(P_0=0\) 的情况,下面假设 \(P_0\ne 0\). 首先注意到我们每次将加特林对准一个人,如果这个人被毙掉了,那么相当于 ...

  4. [JSOI2018]机器人

    [Luogu4558] [LOJ2550] \(19.3.25\) JSOI2018简要题解 - FallDream 规律就是 对于\(n=m\)我们每一条左下到右上的对角线上的点的走法都是一样的且每 ...

  5. 洛谷[LnOI2019]长脖子鹿省选模拟赛 简要题解

    传送门 听说比赛的时候T4T4T4标程锅了??? WTF换我时间我要写T3啊 于是在T4T4T4调半天无果的情况下260pts260pts260pts收场真的是tcltcltcl. T1 快速多项式变 ...

  6. [luogu#2019/03/10模拟赛][LnOI2019]长脖子鹿省选模拟赛赛后总结

    t1-快速多项式变换(FPT) 题解 看到这个\(f(x)=a_0+a_1x+a_2x^2+a_3x^3+ \cdots + a_nx^n\)式子,我们会想到我们学习进制转换中学到的,那么我们就只需要 ...

  7. 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解

    今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...

  8. LNOI2019划水记

    十二省联考命题组温馨提醒您: 数据千万条,清空第一条. 多测不清空,爆零两行泪. NOIp2018差点退役的游记 $Flag$拔了. $LNOI2019$划水记: $Day0$: 早上八点起床,一直颓 ...

  9. 魂酥的LNOI2019滚粗记

    $Day -???$ 高一下终于开始了 在开学文化课考试的水题之下混了个(成绩)前排 于是我便油然而生一种自信 我!要!进!省!队! 讲句真话我这么想的时候连自己都觉得自己是个十足的沙雕 我又不是zw ...

随机推荐

  1. springboot+beetlsql+mysql整合

    一.工程目录结构 二.pom.xml文件配置 <dependency> <groupId>mysql</groupId> <artifactId>mys ...

  2. 三个参数,对mysql存储限制的影响

    1.max_allowed_packet  这个参数会影响单此插入或读取的包的大小,一般和blob字段共用,但要注意一点是这个参数好像是分服务端与客户端的,如果想输出大字段的内容,则在用客户端链接服务 ...

  3. Java研发书单

    Java研发书单 计算机基础:<深入理解计算机系统><计算机网络> 网络方面:<TCP/IP协议卷一><unix网络编程卷一>(部分章节,JAVA主要是 ...

  4. if-return 语句

    if(A > B): return A+1 return A-1 or if(A > B): return A+1 else: return A-1 +++++++++++++++++++ ...

  5. 文件上传控件asp:FileUpload

    前端 使用的控件<asp:FileUpload ID="fileup" runat="server" /><span class=" ...

  6. ETC系统简介

    ETC:电子不停车系统 主要由两部分构成:OBU(车载单元,又叫电子标签)和RSU(路基单元,包括天线) 其中OBU里插有用户卡(一般是和银行联名发行的信用卡) 而RSU包括路基天线,PSAM卡,通过 ...

  7. 什么是awt ?

    http://docs.oracle.com/javase/6/docs/technotes/guides/awt/ Abstract Window Toolkit (AWT) The Abstrac ...

  8. linux 学习管道 和重定向

    开源文化的理念之一 就是不要重新发明轮子 在linux 系统中大多是都是非常简单的命令,每个命令都是实现一个或者几个简单的功能,我们可以将不同的命令组合在一起 来达到复杂的功能的目的,在linux中因 ...

  9. IO--常用的IO问题查询语句

    --=============================== --查看文件上IO等待 SELECT * FROM sys.dm_os_wait_stats WHERE wait_type LIK ...

  10. .NET Core + gRPC 实现数据串流 (Streaming)

    引入 gRPC 是谷歌推出的一个高性能优秀的 RPC 框架,基于 HTTP/2 实现.并且该框架对 .NET Core 有着优秀的支持.最近在做一个项目正好用到了 gRPC,遇到了需要串流传输的问题. ...