传送门

手动消元

令 f [ i ] [ j ] f[i][j] f[i][j]表示还剩 i i i个人,第 j j j个人最后活下来的概率

显然 f [ i ] [ j ] = p 0 ∗ f [ i − 1 ] [ j − 1 ] + ( 1 − p 0 ) ∗ f [ i ] [ j − 1 ] f[i][j]=p0*f[i-1][j-1]+(1-p0)*f[i][j-1] f[i][j]=p0∗f[i−1][j−1]+(1−p0)∗f[i][j−1]
发现这个是带环的,但是所有人概率加起来显然是等于 1 1 1的

就可以像解方程那样解出来回带就可以了

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define gc getchar
inline int read(){char ch=gc();int res=0;while(!isdigit(ch))ch=gc();while(isdigit(ch))res=(res+(res<<2)<<1)+(ch^48),ch=gc();return res;
}
const int N=10005;
struct coe{long double x,y;coe(double _x=0,double _y=0):x(_x),y(_y){}friend inline coe operator +(const coe &a,const coe &b){return coe(a.x+b.x,a.y+b.y);}friend inline coe operator *(const coe &a,const long double &b){return coe(a.x*b,a.y*b);}
}g[N],sum;
long double f[2][N];
long double p0;
int n,k,tmp;
inline void calc(int p){sum=g[1]=coe(1,0);for(int i=2;i<=p;i++)g[i]=coe(0,p0*f[tmp^1][i-1])+g[i-1]*(1-p0),sum=sum+g[i];f[tmp][1]=(1-sum.y)/sum.x;for(int i=2;i<=p;i++)f[tmp][i]=p0*f[tmp^1][i-1]+(1-p0)*f[tmp][i-1];
}
int main(){scanf("%Lf",&p0);scanf("%d%d",&n,&k);if(p0==0){puts("0.000000000");return 0;}f[tmp][1]=1;for(int i=2;i<=n;i++)tmp^=1,calc(i);printf("%.10Lf",f[tmp][k]);
}

【洛谷P5249】【LnOI2019】—加特林轮盘赌(概率dp)相关推荐

  1. 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)

    洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...

  2. 洛谷P4322 最佳团伙(树上dp)

    题目描述 洛谷传送门 题目描述 JSOI 信息学代表队一共有 N 名候选人,这些候选人从 1 到 N 编号.方便起见,JYY 的编号是 0 号.每个候选人都由一位编号比他小的候选人Ri推荐.如果 Ri ...

  3. 洛谷 P3205 [HNOI2010]合唱队(区间dp)

     题目链接: [HNOI2010]合唱队 - 洛谷https://www.luogu.com.cn/problem/P3205  思路: 这题我是看了题解才做出来的,贴一下这位大佬的博客题解 P320 ...

  4. 洛谷P1006 传纸条 (棋盘dp)

    好气,在洛谷上交就过了,在caioj上交就只有40分 之前在51nod做过这道题了. https://blog.csdn.net/qq_34416123/article/details/8180902 ...

  5. 【题解】洛谷P4158 [SCOI2009] 粉刷匠(DP)

    次元传送门:洛谷P4158 思路 f[i][j][k][0/1]表示在坐标为(i,j)的格子 已经涂了k次 (0是此格子涂错 1是此格子涂对)涂对的格子数 显然的是 每次换行都要增加一次次数 那么当j ...

  6. [洛谷]P4158 [SCOI2009]粉刷匠 (#线性dp+背包dp)

    题目描述 windy有 N 条木板需要被粉刷. 每条木板被分为 M 个格子. 每个格子要被刷成红色或蓝色. windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色. 每个格子最多只能被 ...

  7. 洛谷P1140 相似基因【线性dp】

    题目:https://www.luogu.org/problemnew/show/P1140 题意: 给定两串基因串(只包含ATCG),在其中插入任意个'-'使得他们匹配.(所以一共是5种字符) 这5 ...

  8. 洛谷1850(NOIp2016) 换教室——期望dp

    题目:https://www.luogu.org/problemnew/show/P1850 状态里记录的是"上一回有没有申请",而不是"上一回申请成功否",不 ...

  9. 洛谷P4550 收集邮票(概率期望)

    传送门 神仙题啊--这思路到底是怎么来的-- ps:本题是第$k$次买邮票需要$k$元,而不是买的邮票标号为$k$时花费$k$元 我们设$g[i]$表示现在有$i$张,要买到$n$张的期望张数,设$P ...

  10. 洛谷2015 二叉苹果树 树形DP

    https://www.luogu.org/problemnew/show/P2015 二叉苹果树 时间限制: 1 Sec  内存限制: 128 MB 题目描述 有一棵苹果树,如果树枝有分叉,一定是分 ...

最新文章

  1. linux centos php5.3 安装curl扩展
  2. 质子交换膜燃料电池稳压器的设计及仿真
  3. [脑图]如何入门技术、进阶技术(技术开发人员)
  4. java.lang.ClassCastException: [B cannot be cast to java.lang.String
  5. oracle建表后添加数据报错:ORA-01658:无法为表空间中的段创建INITIAL区
  6. how to become a very good candidate at the investment bank?
  7. 跟sheldon学习时间管理
  8. hdu 1561 The more, The Better 树形dp
  9. php mongoclient使用,PHP使用mongoclient简单操作mongodb数据库示例
  10. Zabbix Lack of free swap space
  11. Android6.0内核移植(1):分析编译日志
  12. solaris查看服务器信息,Solaris下如何显示服务器虚拟内存统计信息
  13. 微信小程序-视频教程-链接地址
  14. 如何免费CAJ完整转换成Word
  15. 腾讯云服务器价格表在哪里查看?
  16. 【优化】近端梯度下降(Proximal Gradient Descent)求解Lasso线性回归问题
  17. gzip java 压缩_Java压缩技术(四) GZIP——Java原生实现
  18. 钉钉小程序引入colorUI
  19. 开发GUI界面的工具——Qt
  20. 1155:回文三位数

热门文章

  1. | 背熟这些 Docker 命令,面试再也不怕啦~
  2. Java精品项目源码第126期校园物品租赁管理系统
  3. 【无标题】存储过程循环插入数据mysql
  4. 781. 森林中的兔子
  5. 苦苦寻思 如何改掉抄袭代码的习惯?
  6. JavaScript高级笔记_003_函数进阶
  7. 编程之道(中英互译)--------值得思考(z)
  8. git命令行操作和Vscode的git操作
  9. 通信协议应如何设计才好?自定义进制帮你忙
  10. 30岁码农的一次面试经历:不委屈自己