【洛谷P5249】【LnOI2019】—加特林轮盘赌(概率dp)
传送门
手动消元
令 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)相关推荐
- 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)
洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...
- 洛谷P4322 最佳团伙(树上dp)
题目描述 洛谷传送门 题目描述 JSOI 信息学代表队一共有 N 名候选人,这些候选人从 1 到 N 编号.方便起见,JYY 的编号是 0 号.每个候选人都由一位编号比他小的候选人Ri推荐.如果 Ri ...
- 洛谷 P3205 [HNOI2010]合唱队(区间dp)
题目链接: [HNOI2010]合唱队 - 洛谷https://www.luogu.com.cn/problem/P3205 思路: 这题我是看了题解才做出来的,贴一下这位大佬的博客题解 P320 ...
- 洛谷P1006 传纸条 (棋盘dp)
好气,在洛谷上交就过了,在caioj上交就只有40分 之前在51nod做过这道题了. https://blog.csdn.net/qq_34416123/article/details/8180902 ...
- 【题解】洛谷P4158 [SCOI2009] 粉刷匠(DP)
次元传送门:洛谷P4158 思路 f[i][j][k][0/1]表示在坐标为(i,j)的格子 已经涂了k次 (0是此格子涂错 1是此格子涂对)涂对的格子数 显然的是 每次换行都要增加一次次数 那么当j ...
- [洛谷]P4158 [SCOI2009]粉刷匠 (#线性dp+背包dp)
题目描述 windy有 N 条木板需要被粉刷. 每条木板被分为 M 个格子. 每个格子要被刷成红色或蓝色. windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色. 每个格子最多只能被 ...
- 洛谷P1140 相似基因【线性dp】
题目:https://www.luogu.org/problemnew/show/P1140 题意: 给定两串基因串(只包含ATCG),在其中插入任意个'-'使得他们匹配.(所以一共是5种字符) 这5 ...
- 洛谷1850(NOIp2016) 换教室——期望dp
题目:https://www.luogu.org/problemnew/show/P1850 状态里记录的是"上一回有没有申请",而不是"上一回申请成功否",不 ...
- 洛谷P4550 收集邮票(概率期望)
传送门 神仙题啊--这思路到底是怎么来的-- ps:本题是第$k$次买邮票需要$k$元,而不是买的邮票标号为$k$时花费$k$元 我们设$g[i]$表示现在有$i$张,要买到$n$张的期望张数,设$P ...
- 洛谷2015 二叉苹果树 树形DP
https://www.luogu.org/problemnew/show/P2015 二叉苹果树 时间限制: 1 Sec 内存限制: 128 MB 题目描述 有一棵苹果树,如果树枝有分叉,一定是分 ...
最新文章
- linux centos php5.3 安装curl扩展
- 质子交换膜燃料电池稳压器的设计及仿真
- [脑图]如何入门技术、进阶技术(技术开发人员)
- java.lang.ClassCastException: [B cannot be cast to java.lang.String
- oracle建表后添加数据报错:ORA-01658:无法为表空间中的段创建INITIAL区
- how to become a very good candidate at the investment bank?
- 跟sheldon学习时间管理
- hdu 1561 The more, The Better 树形dp
- php mongoclient使用,PHP使用mongoclient简单操作mongodb数据库示例
- Zabbix Lack of free swap space
- Android6.0内核移植(1):分析编译日志
- solaris查看服务器信息,Solaris下如何显示服务器虚拟内存统计信息
- 微信小程序-视频教程-链接地址
- 如何免费CAJ完整转换成Word
- 腾讯云服务器价格表在哪里查看?
- 【优化】近端梯度下降(Proximal Gradient Descent)求解Lasso线性回归问题
- gzip java 压缩_Java压缩技术(四) GZIP——Java原生实现
- 钉钉小程序引入colorUI
- 开发GUI界面的工具——Qt
- 1155:回文三位数