题意:一个人被困在一个城堡里,面前有n条路,他自己有m百万元,选择每一条路都有p概率通过,q概率遇到士兵,1-p-q概率道路不通;遇到士兵的话需要上交1百万,如果不够钱,则被杀死,问的是最优情况下多少概率可以成功逃脱

思路是首先处理一下数据,想要最优肯定是在不被杀死的情况下越早走出越好,那就要求尽量不要碰到士兵,所以应该先对数据按照p/q排序一下,这样可以保证不死的概率最大,然后通过概率dp的方程即可得解

dp[i][j]代表第i条路还有j百万的情况

第i条路逃脱的情况是dp[i][j]*pi,第i条路碰到士兵并且不被杀死的情况可以推导出dp[i+1][j-1]的情况qi*dp[i][j],第i条路不通折返的情况是dp[i][j]*(1-pi-qi)

注意:因为概率是每次+=,所以要记得将dp数组清零
————————————————
版权声明:本文为CSDN博主「WShuo97」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kuhuaishuxia/article/details/52042586

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=+;
struct node
{
double p,q;
}a[maxn];
double dp[maxn][maxn];
bool cmp(node x,node y)
{
return x.p*y.q>x.q*y.p;
}
int main()
{
int t;
scanf("%d",&t);
for(int T=; T<=t; T++){
int n,m;
scanf("%d%d",&n,&m);
for(int i=; i<=n; i++){
scanf("%lf%lf",&a[i].p,&a[i].q);
}
sort(a+,a++n,cmp);
memset(dp,,sizeof(dp));
dp[][m]=1.0;
double ans=;
for(int i=;i<=n;i++)
for(int j=m;j>=;j--){
dp[i+][j-]+=a[i].q*dp[i][j];
dp[i+][j]+=dp[i][j]*(-a[i].p-a[i].q);
ans+=dp[i][j]*a[i].p;
}
printf("Case %d: %.5lf\n",T,ans);
}
return ;
}

概率DP hdu 3366 .的更多相关文章

  1. 概率dp HDU 3853

    H - LOOPS Time Limit:5000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit ci ...

  2. 概率dp HDU 4405

    Aeroplane chess Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Sub ...

  3. [概率dp] hdu 5378 Leader in Tree Land

    题意: 给你一颗以1位根节点的树.我们定义对于每一个子树,节点权值最大的权值记为这个子树的权值,为你将1~n放到这个树里 满足最大权值仅仅有k个的组合数是多少. 思路: 我们能够知道以每一个节点为子树 ...

  4. 概率DP HDU 4586 play the dice

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4586 解题思路: 只考虑第一次,获得的金币的平均值为sum/n.sum为所有色子的面的金币值相加. ...

  5. HDU 3366 Passage (概率DP)

    题意:T组测试数据,一个人困在了城堡中,有n个通道,m百万money ,每个通道能直接逃出去的概率为 P[i] ,遇到士兵的概率为 q[i], 遇到士兵得给1百万money,否则会被杀掉,还有 1-p ...

  6. HDU 3076:ssworld VS DDD(概率DP)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=3076 ssworld VS DDD Problem Description   One day, s ...

  7. HDU 4405:Aeroplane chess(概率DP入门)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=4405 Aeroplane chess Problem Description   Hzz loves ...

  8. HDU 3853LOOPS(简单概率DP)

    HDU 3853    LOOPS 题目大意是说人现在在1,1,需要走到N,N,每次有p1的可能在元位置不变,p2的可能走到右边一格,有p3的可能走到下面一格,问从起点走到终点的期望值 这是弱菜做的第 ...

  9. HDU 5781 ATM Mechine (概率DP)

    ATM Mechine 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5781 Description Alice is going to take ...

随机推荐

  1. C++-POJ3233-Matrix Power Series[矩阵乘法][快速幂]

    构造矩阵 #include <cstdio> ; struct Matrix{int a[MAXN][MAXN];}O,I;int N; ;i<MAXN;i++);j<MAXN ...

  2. 题解【AcWing902】最短编辑距离

    题面 经典的最长公共子序列模型. 我们设 \(dp_{i,j}\) 表示 \(a_{1...i}\) 与 \(b_{1...j}\) 匹配上所需的最少操作数. 考虑删除操作,我们将 \(a_i\) 删 ...

  3. Vue ui创建项目

    vue-cli 3.0 版本为我们提供了集 创建.管理.分析 为一体的可视化界面vue UI,一个可视化项目管理器 一.打开终端,安装最新vue-cli npm install -g @vue/cli ...

  4. ArcGis Server manager 忘记用户名和密码

    ArcGIS 10.1及以后版本重置Server Manager账户密码:(1)找到arcgis server的安装目录,目录指向\ArcGIS\Server\tools\passwordreset文 ...

  5. PHP中关于foreach使用引用变量的坑

    PHP版本为 5.6.12 代码如下:   1 2 3 4 5 6 7 8 9 10 11 12 <?php $arr = ['a', 'b', 'c', 'd', 'e']; foreach ...

  6. 温故知新的错题训练:Coin game

    传送门:http://192.168.173.163/JudgeOnline/problem.php?cid=1244&pid=1 输赢规则:无法再放下硬币的人就输. 博弈论的基本假定:他俩都 ...

  7. django实现简易登录注册

    经过一些文档的理解,以及一些时间的琢磨.我觉得可以用django做一些小项目了 先说说登录功能吧. 先创建一个app,用admin命令 在cmd打开到manage.py同级目录下,django-adm ...

  8. MFC线程间消息传递(转)

    原文地址:https://blog.csdn.net/qq_37059136/article/details/84972192

  9. git add 时忽略某些文件或者文件夹

    1.git bash 新建  .gitignore文件 touch .gitignore 2.修改.gitignore文件,如下 target/ !.mvn/wrapper/maven-wrapper ...

  10. bugku 这么多数据包

    看到之后有点懵逼 然后下载 下载之后发现是一个pacp后缀的流量数据包 然后用wireshark 然后只想到了 http过滤 然后发现不对 然后参考其他人的博客 经大佬提示, 一般 getshell ...