[HDU4035]Maze(概率与期望)

深信服防火墙路由模式开局部署-手把手教学(小白篇) 手把手教学,拿到深信服的防火墙路由模式该如何开局? 阅读详情

=== ===

这里放传送门

=== ===

题解

可以想到用 f[i] 表示从点i逃出去的期望步数。但是这个题因为它有一个概率回到1号点重新开始,所以会存在互相推的问题。通用的解决办法是高斯消元,但这个题的数据范围显然没有办法消。。。

但是题目给的是一棵树,能不能利用这个特点?
设 P[i] 为从点i逃到其它点的概率,就是 P[i]=1−k[i]−e[i]d[i] 。首先列出递推式:

f[i]=∑son(f[son]+1)∗P[i]+(f[fa]+1)∗P[i]+f[1]∗k[i]

如果利用类似树形DP的方法用儿子的结果更新父亲的话, f[fa] 和 f[1] 就都是未知数,而 f[son] 是已知数,在递推 f[i] 的时候可以当做一个常量。
那么设 f[i]=A[i]∗f[fa]+B[i]∗f[1]+C[i] 。我们希望得到关于 A[i],B[i] 和 C[i] 的递推式。为了递推就需要在式子里面引入 A[son],B[son] 和 C[son] 。利用 f[son]=A[son]∗f[i]+B[son]∗f[1]+C[son] 来代入上面的递推式,得到:
f[i]=∑son(A[son]∗f[i]+B[son]∗f[1]+C[son]+1)∗P[i]+(f[fa]+1)∗P[i]+f[1]∗k[i]

把这个式子展开,把同类项合并,得到
(1−∑sonA[son]∗P[i])∗f[i]=f[fa]∗P[i]+(∑sonB[son]∗P[i]+k[i])∗f[1]+∑son(C[son]+1)∗P[i]+P[i]

那么如果设 T[i]=1−∑sonA[son]∗P[i] ,就有 A[i]=P[i]T[i] , B[i]=∑sonB[son]∗P[i]+k[i]T[i] , C[i]=(∑sonC[son]∗P[i])+d[i]∗P[i]T[i] 。一遍树形DP就可以求出 A[1] , B[1] 和 C[1] 。而因为节点1没有父亲,所以 f[1]=B[1]∗f[1]+C[1] ,也就是 f[1]=C[1]1−B[1] 。计算过程中只要出现被零除的情况就说明无解,输出impossible即可。

代码

#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const double eps=1e-10;
int T,n,p[10010],a[20010],tot,nxt[20010];
double A[10010],B[10010],C[10010],P[10010],d[10010],K[10010],E[10010];
bool flag;
void add(int x,int y){
    tot++;a[tot]=y;nxt[tot]=p[x];p[x]=tot;
}
void dfs(int u,int fa){
    double tmp=0;
    A[u]=P[u];B[u]=K[u];
    C[u]=1-K[u]-E[u];
    for (int i=p[u];i!=0;i=nxt[i])
      if (a[i]!=fa){
          dfs(a[i],u);
          if (flag==true) return;
          tmp+=A[a[i]]*P[u];
          B[u]+=B[a[i]]*P[u];
          C[u]+=C[a[i]]*P[u];
      }
    tmp=1.0-tmp;
    if (fabs(tmp)<eps){flag=true;return;}
    A[u]/=tmp;B[u]/=tmp;C[u]/=tmp;
}
int main()
{
    scanf("%d",&T);
    for (int wer=1;wer<=T;wer++){
        scanf("%d",&n);tot=0;
        memset(d,0,sizeof(d));
        memset(p,0,sizeof(p));
        for (int i=1;i<n;i++){
            int x,y;scanf("%d%d",&x,&y);
            add(x,y);add(y,x);
            d[x]+=1;d[y]+=1;
        }
        for (int i=1;i<=n;i++){
            scanf("%lf%lf",&K[i],&E[i]);
            K[i]/=100.0;E[i]/=100.0;
        }
        for (int i=1;i<=n;i++)
          P[i]=(1-K[i]-E[i])/d[i];
        flag=false;dfs(1,0);
        printf("Case %d: ",wer);
        if (flag==true||fabs(1.0-B[1])<eps)
          printf("impossible\n");
        else printf("%.6lf\n",C[1]/(1-B[1]));
    }
    return 0;
}

偏偏在最后出现的补充说明

这类题目是概率与期望题目中经常出现的一个类型。在没有办法使用高斯消元的时候要注意观察题目的性质,有些时候会给出具有明显递推特性的结构。基本思路就是设未知量然后由直接递推答案转为递推未知量的系数。

基于STM32的智能电子秤设计毕业论文 摘要:本文设计了一款基于STM32F103C8T6的智能电子秤系统,通过HX711称重传感器实现高精度测量,采用OLED显示和矩阵键盘完成人机交互。系统包含重量采集、数据处理、单价设置、去皮清零及总价计算等功能模块,经测试测量误差小于0.1%,稳定性良好。研究实现了低成本、高可靠性的智能称重方案,为后续无线传输和AI算法集成奠定了基础。关键词:STM32;智能电子秤;HX711;OLED显示;矩阵键盘。 阅读详情

相关推荐

《跨界杂谈》华为印象(五):高度集权的矩阵式架构

高度集权的矩阵式架构 “高度集权的矩阵式架构”不是官方术语。是笔者的一位同事非常经典的总结。解释这个句话还是有点困难的,笔者入职华为三年也没彻底搞明白,在这里只能尝试性的解释一下。 矩阵 我们先看一下“矩阵”。华为有两套部门职能体系,华为内部术语,叫实线部门和虚线部门。由实线与虚线部门交叉构成矩阵。大部分(但不是所有)华为员工都由两个部门(两个领导)进行管理。对员工而言,所谓的实线部

《云计算架构技术与实践》 2996

HDU - 4035(树形概率dp+分离系数)

有一个n个结点的树形迷宫,在每个结点有概率被杀,有概率逃出,否则随机选择一条边进入下一个结点,若被杀则回到结点一重新走迷宫,问逃出迷宫所走的边数期望 dp[i]为点i逃出的期望 和ZOJ - 3329类似dp方程中含有dp[1]而dp顺序是从叶节点到根节点1的,所以没法直接求 设 根据这两题来看,dp方程的设法应该是把还未求得的变量前乘上一个系数,然后已求得的变量合并为一个系数 最后...

bpdwn2017的博客 457

Unity Spine动画控制全攻略:播放、回调与停止的实战技巧

本文深入解析Unity中Spine动画的核心控制技巧,涵盖动画播放、轨道分层、事件回调与平滑停止等实战方法。通过封装SpineAnimationController,详细讲解了如何利用动画播放结束回调实现精准的游戏逻辑同步,并提供了避免内存泄漏和动画卡顿的避坑指南,助力开发者打造流畅专业的2D游戏动画系统。

weixin_29021291的博客 379

HDU4035(概率期望、树形、数学)

和ZOJ3329有些像,都是用期望列出来式子以后,为了解式子,设A[i],B[i],此题又多了C[i],然后用递推(此题是树形dp)去求得ABC,最后结果只跟ABC有关,跟列写的期望数组根本无关。 虽然式子很长很冗,但平心而论思维上并不难理解,关键是自信和耐心去带入。ABC的递推式出来了以后,代码就不难了。 据说eps有坑? 邝斌巨巨的: 1 #pragma c...

357

python 编程 安卓脚本_详解基于Android的Appium+Python自动化脚本编写

1.AppiumAppium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试, 它使用WebDriver协议驱动iOS,Android和Windows应用程序。通过Appium,我们可以模拟点击和屏幕的滑动,可以获取元素的id和classname,还可以根据操作生成相关的脚本代码。下面开始Appium的配置。appPackage和APPActivity的获取任意下载一个app解压...

weixin_39523625的博客 2930

Linux系统监控实战:夜莺监控+categraf采集器配置全流程(附常见问题排查)

本文详细介绍了在Linux系统中使用夜莺监控和categraf采集器进行系统监控的全流程配置,包括环境准备、核心配置文件(如config.toml和procstat.toml)详解、服务集成与验证、高级监控配置实战以及常见问题排查。通过实战案例和优化建议,帮助运维人员快速构建高效的监控体系。

xray4的博客 736

HDU - 4035 Maze(概率dp)

题目链接:点击查看 题目大意:给出一个 n 个点的树,初始时位于点 1 ,每个点都会给出一个概率 k[ i ] 和一个概率 e[ i] ,其代表的意义分别是: k[ i ] :在点 i 有 k[ i ] 的几率死亡,复活到点 1 e[ i ] :在点 i 有 e[ i ] 的几率逃生 1 - k[ i ] - e[ i ] :等概率经过周围的边到达相邻的点 问从点 1 开始逃生的期望步数 题目分析: 树形dp维护一下概率dp所需要的变量即可,记得特判无解的情况,有个小坑就是会卡精度,e.

Falcon的博客 747

1、vectorCast单元测试常用操作

进入软件主页面,点击file,选择set working directory,随便选择一个保存该项目的目录即可。

weixin_59334478的博客 2156

HDU 4035(Maze)

题意:有 n 个房间,由 n-1 条隧道连通起来,实际上就形成了一棵树,从结点 1 出发,开始走,在每个结点 i 都有 3 种可能: 1:被杀死,回到结点1处 (概率为ki) 2:找到出口,走出迷宫 (概率为ei) 3:和该点相连有m条边,随机走一条 求:走出迷宫需要走的边数的期望。 分析:开始没有做出来,看了题解才明白,也不能说这题目特别难吧,只是公式变形有些繁琐,概...

Joker & Liar的博客 323

pyecharts在jupyter notebook中不能够渲染图表问题。

在使用jupyter notebook中使用pyecharts绘制可视化图表的时候,发现图表不能渲染到页面中,生成的html是没问题的,本文主要解决在jupyter notebook中不能渲染这个问题。

猿小白的博客 1167

信创服务器(麒麟 V10 SP3)安装 NVIDIA GeForce RTX 5070 驱动

本文介绍了在麒麟V10 SP3系统上安装NVIDIA RTX 5070显卡驱动的详细步骤。首先需要关闭nouveau驱动,安装必要的编译环境和工具,确保内核版本与kernel-devel完全一致。最后运行NVIDIA驱动安装程序,关键选择包括启用DKMS支持、编译模块、禁用32位兼容和nouveau驱动。整个流程适用于海光CPU和Blackwell架构GPU的国产操作系统环境。

猿小白的博客 679

hdu4035(概率dp)

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4035 题意:有n个房间,由n-1条隧道连通起来,实际上就形成了一棵树, 从结点1出发,开始走,在每个结点i都有3种可能: 1.被杀死,回到结点1处(概率为ki) 2.找到出口,走出迷宫 (概率为ei) 3.和该点相连有m条边,随机走一条 求:走出迷宫所要走的边数的期望值。 分析:这题...

weixin_34392906的博客 263

基于哈夫曼编码的图像加密算法matlab仿真

哈夫曼编码是一种常用的无损数据压缩算法,其基本思想是根据字符出现的频率构造一棵哈夫曼树,将出现频率高的字符编码为短码,出现频率低的字符编码为长码,从而实现数据的压缩。在图像加密领域,哈夫曼编码也被广泛应用于图像加密算法中,基于哈夫曼编码的图像加密算法具有加密速度快、加密强度高等优点。基于哈夫曼编码的图像加密算法的基本思路是将待加密的图像分为多个小块,对每个小块进行哈夫曼编码,然后将哈夫曼编码后的结果进行异或运算,最后将异或运算后的结果重新编码,以实现图像加密。具体步骤如下:将待加密的图像分成多个小块。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 262

【概率与期望】hdu 4035 Maze

通道:http://acm.hdu.edu.cn/showproblem.php?pid=4035 题意:有n个房间,由n-1条隧道连通起来,实际上就形成了一棵树,从结点1出发,开始走,在每个结点i都有3种可能:   1.被杀死,回到结点1处(概率为ki)   2.找到出口,走出迷宫 (概率为ei)   3.和该点相连有m条边,随机走一条  求走出迷宫所要走的边数的...

124

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

HDU 4035:Maze 概率DP求期望(有环)

Maze 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4035 题意: 有N(2 ≤ N ≤ 10000)个房间和一堆双向边(不存在环),每个房间有ki和ei两个值,分别代表回到房间1和游戏结束的概率,求游戏结束时通过的边数的期望 题解: 一道很好很经典的求期望的题 设E[i]为以i为起点,直到游戏结束所通...

weixin_30621919的博客 156

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

HDU 4035 Maze (概率DP & 期望)

Maze Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others)Total Submission(s): 1055    Accepted Submission(s): 347Special Judge Problem Description When wake up, lxhgw...

weixin_34249678的博客 98

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

HDU 4035 maze 概率期望dp

Problem Description When wake up, lxhgww find himself in a huge maze.The maze consisted by N rooms and tunnels connecting these rooms. Each pair of rooms is connected by one and only one path. Initial

qq_37321744的博客 314

[hdu4035] Maze【概率dp 数学期望】

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4035 真的是一道好题,题解比较麻烦,我自己在纸上写了好大一块草稿才搞出来,不用公式编辑器的话就很难看清楚,所以不上题解啦,贴一个题解的链接:http://blog.youkuaiyun.com/balloons2012/article/details/7891054 注意此题卡精度,我一开始eps是1e-8,W...

weixin_30607659的博客 106

hdu 4035 Maze (概率与期望DP)

题目描述传送门题目描述:一棵树,一个人初始在1号点。每次到达一个点,有ki的概率被杀死,并且回到1号点,有ei的概率直接逃离,然后等概率的逃到与他相邻的节点(1-ki-ei)/du[i],每次移动步数+1。 求逃出去的期望步数。题解这道题与上面题的思想和方法是类似的。 我们先假设逃离是到达节点0, 那么E[0]=0,倒着推。 对于叶子节点,他要么逃到他的父亲节点,要么被杀,要么直接逃离 E[i

clover_hxy的博客 532

hdu4035 Maze(概率期望dp)

题目链接 题目描述: 一棵树,一个人初始在1号点 每次到达一个点,有ki的概率被杀死,并且回到1号点,有ei的概率直接逃离 然后等概率的逃到与他相邻的节点1−ki−eidu[i]1−ki−eidu[i]1-ki-ei \over du[i],这种情况下每次移动步数+1 求逃出去的期望步数 分析: 设我们的目标的0号结点,E[0]=0E[0]=0E[0]=0,我们还是要倒着退 对于叶...

Coco_T的博客 295

借助树的概率dp(期望)+数学-好题-hdu-4035-Maze

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4035 题目意思: 有n个房间,有n-1条通道连接这n个房间(每两个房间之间有且只有一条路,所以实际上就是一棵树),在每个房间中,有三种选择要么被杀则回到第一个房间,概率为ki,要么从出口逃离概率为ei,要么通过通道到达其他的房间。 解题思路: 好题。 状态转移方程很好想,但是求的时候

cc_again的专栏 2389

HDU-4035 Maze (概率DP求期望)

题目大意:在一个树形迷宫中,以房间为节点。有n间房间,每间房间存在陷阱的概率为ki,存在出口的概率为ei,如果这两种情况都不存在(概率为pi),那么只能做出选择走向下一个房间(包括可能会走向上一个房间)。根节点为1,当遇到陷阱时必须返回到根节点1处重新开始,当遇到出口时,走出迷宫。问从开始到走出迷宫所做出选择次数的期望值。 题目分析:定义状态dp(i)表示在节点 i 处直到走出迷宫的选...

weixin_30902251的博客 124

HDU 4035 Maze

一、题目 二、解法 设dp[i]dp[i]dp[i]为在点iii要找到出口的期望步数,我们很轻易地列出下列dpdpdp式: dp[i]=∑son(dp[son]+1)∗p[i]+e[i]∗0+dp[fa]∗p[i]+k[i]∗dp[1]dp[i]=\sum_{son}(dp[son]+1)*p[i]+e[i]*0+dp[fa]*p[i]+k[i]*dp[1]dp[i]=∑son​(dp[son]...

C202044zxy的博客 237

HDU4035:Maze

HDU4035:Maze题目大意思路代码~~理论AC~~ 题目大意 传送门 思路 我们先考虑最朴素无华的dp,我们假设dp[i]dp[i]dp[i]为从i点走出迷宫的期望步数,那么,我们可以费劲九牛二虎之力 轻松地列出dp式,如果i是叶子节点,那么 dp[i]=ki×dp[1]+ei×0+(1−ei−ki)×(dp[fa]+1)dp[i]=k_i\times dp[1]+e_i\times 0 ...

nobody_like_you的博客 374

期望Dp总结

【学习资料】 Sengxian:概率与期望DP总结 Thomas H.Cormen等:《算法导论》附录 数学基础知识 【笔记整理】 离散随机变量$X$:从一个有限或可数无限的样本空间$S$到实数的函数。 随机变量$X$的概率密度函数:若定义事件$X=x$表示$\{s\in S,X(s)=x\}$,则$f(x)=\text{Pr}\{X=x\}=\sum_{s\in S,X(s...

weixin_30881367的博客 193
上一篇: [BZOJ3697]采药人的路径(点分治)
下一篇: [BZOJ1823][JSOI2010]满汉全席(2-SAT)
FromATP
博客等级 码龄10年 75粉丝 163原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值