hdu4035 Maze 题解】的更多相关文章

/* 设 E[i]表示在结点i处,要走出迷宫所要走的边数的期望. E[i] = ki*E[1] + (1-ki-ei)*E[fa[i]] + (1-ki-ei); E[i] = ki*E[1] + (1-ki-ei)/siz[i]*E[fa[i]] + (1-ki-ei)/siz[i]*∑(E[child[i]]) + (1-ki-ei); 设对每个结点:E[i] = Ai*E[1] + Bi*E[fa[i]] + Ci; ∑(E[child[i]]) = ∑E[j] = ∑(Aj*E[1] +…
题目链接 hdu4035 Maze 题解 f[u]表示在节点u通关的所需的边数期望 转移方程分叶子节点和非叶子点讨论 发现都可以化成f[x]=af[1]+bf[dad]+c的形式 然后推一下系数 还是看这个吧https://www.cnblogs.com/Paul-Guderian/p/7624039.html 代码 #include<cmath> #include<cstdio> #include<ctime> #include<cstring> #inc…
HDU4035 有\(n\)个房间 , 由\(n-1\)条隧道连通起来 , 实际上就形成了一棵树 , 从结点\(1\)出发 , 开始走 , 在每个结点\(i\)都有\(3\)种可能 : \(1.\)被杀死 , 回到结点\(1\)处 (概率为\(k_i\)) \(2.\)找到出口 , 走出迷宫 (概率为\(e_i\)) \(3.\)和该点相连有\(m\)条边 , 随机走一条 求走出迷宫所要走的边数的期望值 题解 \(1.\)设对每个结点转化为:\(E[i] = Ai*E[1] + Bi*E[fat…
http://acm.hdu.edu.cn/showproblem.php?pid=4035 树上的概率dp.   Maze Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others) Total Submission(s): 1626    Accepted Submission(s): 608 Special Judge Problem Description When wake up…
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. Initially, lxhgww is in room 1. Each room has a dangerous trap. When lxhgww…
题目链接 BZOJ4035 题解 神题啊...orz 不过网上题解好难看,数学推导不写\(Latex\)怎么看..[Latex中毒晚期] 我们由题当然能很快写出\(dp\)方程 设\(f[i]\)表示从\(u\)出发逃离的期望步数,\(m\)为该点度数 \[ \begin{aligned} f[u] &= K_uf[1] + \frac{1 - K_u - E_u}{m}\sum\limits_{(u,v) \in edge} (f[v] + 1)\\ &= K_uf[1] + \frac…
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4035 真的是一道好题,题解比较麻烦,我自己在纸上写了好大一块草稿才搞出来,不用公式编辑器的话就很难看清楚,所以不上题解啦,贴一个题解的链接:http://blog.csdn.net/balloons2012/article/details/7891054 注意此题卡精度,我一开始eps是1e-8,WA掉了,开到了1e-10,AC~,真是烦卡精度的题. #include <cstdio> #inclu…
题目大意:在一个树形迷宫中,以房间为节点.有n间房间,每间房间存在陷阱的概率为ki,存在出口的概率为ei,如果这两种情况都不存在(概率为pi),那么只能做出选择走向下一个房间(包括可能会走向上一个房间).根节点为1,当遇到陷阱时必须返回到根节点1处重新开始,当遇到出口时,走出迷宫.问从开始到走出迷宫所做出选择次数的期望值. 题目分析:定义状态dp(i)表示在节点 i 处直到走出迷宫的选择次数期望值.则状态转移方程为: dp(i)=ki*dp(1)+(1/m)*pi*∑(dp(son)+1) (i…
题目分析: 以前一直不会这个方法, 我好菜啊. 转移分为三个部分,一个是直接成功,一个是转移到E1,还有一个是转移到自己周围的一圈儿点. 如果是叶子那么只能转移到父亲,如果不是叶子可以把非叶子的转移代换,这样也只转移到父亲,判一下无解就行了. 代码: #include<bits/stdc++.h> using namespace std; ; ; int n,Tmp,cas; double a[maxn],b[maxn]; vector<int> g[maxn]; double A…
题意 抄袭自https://www.cnblogs.com/Paul-Guderian/p/7624039.html 有n个房间,由n-1条隧道连通起来,形成一棵树,从结点1出发,开始走,在每个结点i都有3种可能(概率之和为1):1.被杀死,回到结点1处(概率为ki)2.找到出口,走出迷宫 (概率为ei)3.和该点相连有m条边,随机走一条求:走出迷宫所要走的边数的期望值.(2≤n≤10000) Sol 非常nice的一道题. 我简单的说一下思路:首先列出方程,$f[i]$表示在第$i$个位置走出…