题目链接:点击查看

题目大意:给出一个 n 个点的树,初始时位于点 1 ,每个点都会给出一个概率 k[ i ] 和一个概率 e[ i ] ,其代表的意义分别是:

  1. k[ i ] :在点 i 有 k[ i ] 的几率死亡,复活到点 1
  2. e[ i ] :在点 i 有 e[ i ] 的几率逃生
  3. 1 - k[ i ] - e[ i ] :等概率经过周围的边到达相邻的点

问从点 1 开始逃生的期望步数

题目分析:

树形dp维护一下概率dp所需要的变量即可,记得特判无解的情况,有个小坑就是会卡精度,eps调成 1e-9 或 1e-10 才能过

代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<climits>
#include<queue>
#include<map>
#include<set>
#include<sstream>
#include<cassert>
#include<bitset>
using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=1e4+100;const double eps=1e-10;int sgn(double x)
{if(fabs(x)<eps)return 0;if(x<0)return -1;else return 1;
}vector<int>node[N];double k[N],e[N],t[N],A[N],B[N],C[N];void init(int n)
{for(int i=1;i<=n;i++)node[i].clear();
}bool dfs(int u,int fa)
{int m=node[u].size();A[u]=k[u];B[u]=t[u]/m;C[u]=t[u];double temp=0;for(auto v:node[u]){if(v==fa)continue;if(!dfs(v,u))return false;A[u]+=t[u]/m*A[v];C[u]+=t[u]/m*C[v];temp+=t[u]/m*B[v];}if(sgn(1-temp)==0)return false;A[u]/=(1-temp);B[u]/=(1-temp);C[u]/=(1-temp);return true;
}int main()
{
#ifndef ONLINE_JUDGE
//  freopen("data.in.txt","r",stdin);
//  freopen("data.out.txt","w",stdout);
#endif
//  ios::sync_with_stdio(false);int w;cin>>w;int kase=0;while(w--){int n;scanf("%d",&n);init(n);for(int i=1;i<n;i++){int u,v;scanf("%d%d",&u,&v);node[u].push_back(v);node[v].push_back(u);}for(int i=1;i<=n;i++){scanf("%lf%lf",k+i,e+i);k[i]/=100;e[i]/=100;t[i]=1-k[i]-e[i];}if(dfs(1,-1)&&sgn(1-A[1])!=0)printf("Case %d: %.10f\n",++kase,C[1]/(1-A[1]));elseprintf("Case %d: impossible\n",++kase);}return 0;
}

HDU - 4035 Maze(概率dp)相关推荐

  1. HDU-4035 Maze 概率DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4035 很不错的概率DP题目,因为这题是无向图,所以要对叶节点和非叶节点考虑,然后列出方程后,因为数据很 ...

  2. hdu 3853 LOOPS 概率DP

    简单的概率DP入门题 代码如下: 1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 ...

  3. HDU 4035 Maze(树形概率DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4035 题意:一棵树,从结点1出发,在每个结点 i 都有3种可能:(1)回到结点1 , 概率 Ki:(2 ...

  4. HDU 4035 Maze

    Maze http://acm.hdu.edu.cn/showproblem.php?pid=4035 分析: 在树上走来走去,然后在一个点可以k的概率回到1,可以e的概率走出去,可以1-k-e的概率 ...

  5. LOOPS HDU - 3853 (概率dp):(希望通过该文章梳理自己的式子推导)

    题意:就是让你从(1,1)走到(r, c)而且每走一格要花2的能量,有三种走法:1,停住.2,向下走一格.3,向右走一格.问在一个网格中所花的期望值. 首先:先把推导动态规划的基本步骤给出来. · 1 ...

  6. 线性代数五之高斯消元——[SDOI2010]外星千足虫,[HNOI2013]游走,[HNOI2011]XOR和路径,[hdu 4035]Maze

    多类型高斯消元杂题 [SDOI2010]外星千足虫 description solution code [HNOI2013]游走 description solution code [HNOI2011 ...

  7. LOOPS HDU - 3853(概率dp,期望)

    题意: 有一个R*C的方格.一个人想从(1,1)走到(r,c).在每个格子都有三种选择,向下,向右,或者原地不动.每个格子里的每个选择都有一定的概率.而每次移动都需要消耗2点的能量,问期望消耗的能量是 ...

  8. hdu 3853 LOOPS (概率dp 逆推求期望)

    题目链接 LOOPS Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others) Tot ...

  9. 【原创】概率DP总结 by kuangbin

    概率DP主要用于求解期望.概率等题目. 转移方程有时候比较灵活. 一般求概率是正推,求期望是逆推.通过题目可以体会到这点. 首先先推荐几篇参考的论文: <信息学竞赛中概率问题求解初探> & ...

最新文章

  1. 关于Rocchio算法和向量空间模型反馈
  2. hdu 5340(manacher+枚举)
  3. 2/2 pymysql:基础操作总结
  4. php __FILE__,__CLASS__等魔术变量,及实例
  5. 信息学奥赛一本通 2006:【20CSPJ普及组】表达式 | 洛谷 P7073 [CSP-J2020] 表达式
  6. linux修改last权限,Linux常用命令2/3(有关用户、权限管理的命令)--Unix/Linux操作系统04...
  7. SAP UI5 控件库里 Form 控件和 SimpleForm 控件的区别和联系讲解试读版
  8. Apache Tomcat 安装配置图文详细教程
  9. python记忆口诀-最良心的软件可以良心到什么程度?
  10. 三菱je -c中映射表的作用_如何将三菱PLC程序转换成欧姆龙PLC程序?
  11. elasticsearch 支持中英文搜索和混合搜索
  12. 视频网关是什么,视频接入网关技术作用
  13. 商务个人邮箱、VIP邮箱哪个最好用?外贸安全邮箱又怎么选?
  14. 2023首届西安浐灞·保利戏剧节——以“觅”为主题 即将开启
  15. 华为朗读屏幕怎么关闭
  16. windows网络编程 ---网络聊天室(1)
  17. Android入门一:搭建Java开发环境
  18. 淘宝商品比价定向爬虫-Python网络爬虫与信息提取-北京理工大学嵩天教授
  19. 神经网络 深度神经网络,主流的神经网络的框架
  20. 掘金万亿母婴市场,宝宝树价值在哪里? | 一点财经

热门文章

  1. dr.com linux源码安装,Linux在不采用坑爹的Dr.com客户端下的连网方式(亲测可行 ,简单易行)...
  2. powerdns mysql_安装PowerDNS(使用MySQL后端)和Poweradmin在Debian Lenny
  3. Nacos源码发送心跳
  4. SpringSecurity加密认证
  5. ConcurrentHashMap的源码分析-put方法第二阶段
  6. Synchronized结合Java Object对象中的 wait,notify,notifyAll
  7. 高仿真的类-AbstractApplicationContext
  8. 什么是springboot框架
  9. 依赖注入_引用其他的bean
  10. 算术运算符_四则与取模运算