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. c++ static笔记

    [转]http://www.cnblogs.com/zi-xing/p/4590282.html static的作用 在函数体,一个被声明为static的变量,在这一函数被调用的过程里,其数值维持不变 ...

  2. 爬虫 之 scrapy框架

    浏览目录 介绍 安装 项目结构及爬虫应用简介 常用命令行工具 Spiders爬虫 Selectors选择器 Item Pipeline 项目管道 Downloader Middleware下载中间件 ...

  3. ubuntu-server部署php+mysql运行环境

    1.apt-get install git php5 mysql-server apache2 phpmyadmin 2.sudo ln -s /usr/share/phpmyadmin /var/w ...

  4. 关于利用word发布文章到博客

    目前大部分的博客作者在写博客这件事情上都会遇到以下3个痛点:1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.2.发布到博客或公众号平台 ...

  5. iPhone Development – core data relationships tutorial part 1

    I’m going to start a short series on Core Data relationships and maybe throw in some general Core Da ...

  6. linux 命令学习-网络相关配置

    网络配置相关 网卡配置文件:etc/sysconfig/network-scripts/ifcfg-eth0 DNS 配置文件 etc/resolv.conf 主机配置文件 etc/sysconfig ...

  7. Mysql自动设置时间(自动获取时间,填充时间)

    应用场景: 1.在数据表中,要记录每条数据是什么时候创建的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录创建时间: 2.在数据库中,要记录每条数据是什么时候修改的,不需要应用程序去特意 ...

  8. memcached整理の分布式集群算法

    memcached如何实现分布式? memcached是一个“分布式内存对象缓存系统”,然而memcached并不像mongodb那样,允许配置多个节点,且节点之间“自动分配数据”,就是说memcac ...

  9. ConcurrentDictionary 与 Dictionary

    ASP.NET中ConcurrentDictionary是.Net4 增加的,与 Dictionary 最主要区别是, 前者是线程安全的集合,可以由多个线程同时并发读写Key-value.   那么 ...

  10. python版本selenium定位方式(不止八种哦)

    除了大家熟知的8种定位方式之外 1.id定位:find_element_by_id(self, id_)2.name定位:find_element_by_name(self, name)3.class ...