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] + Bj*E[i] + Cj)
带入得
(1 - (1-ki-ei)/siz[i]*∑Bj)*E[i] = (ki+(1-ki-ei)/siz[i]*∑Aj)*E[1] + (1-ki-ei)/siz[i]*E[fa[i]] + (1-ki-ei) + (1-ki-ei)/siz[i]*∑Cj;
Ai = (ki+(1-ki-ei)/siz[i]*∑Aj) / (1 - (1-ki-ei)/siz[i]*∑Bj);
Bi = (1-ki-ei)/siz[i] / (1 - (1-ki-ei)/siz[i]*∑Bj);
Ci = ( (1-ki-ei)+(1-ki-ei)/siz[i]*∑Cj ) / (1 - (1-ki-ei)/siz[i]*∑Bj);
E[1] = A1*E[1] + B1*0 + C1;
E[1] = C1 / (1 - A1);
上述式子中若分母为零则无解
*/
#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
const int maxn=1e4+5;
struct edge
{
int v,nxt;
}ep[maxn<<1];
int hd[maxn],kh;
double k[maxn],e[maxn],a[maxn],b[maxn],c[maxn];
int n,t,siz[maxn];
void add(int u,int v) {ep[++kh]=(edge){v,hd[u]};hd[u]=kh;}
bool dfs(int u,int fa)
{
double x1=0;
a[u]=k[u];b[u]=(1-k[u]-e[u])/siz[u];c[u]=1-k[u]-e[u];
for(int i=hd[u];i!=-1;i=ep[i].nxt)
{
if(ep[i].v==fa) continue;
if(!dfs(ep[i].v,u)) return 0;
a[u]+=b[u]*a[ep[i].v];
x1+=b[u]*b[ep[i].v];
c[u]+=b[u]*c[ep[i].v];
}
if(1-x1<1e-9) return 0;
a[u]/=1-x1;b[u]/=1-x1;c[u]/=1-x1;
return 1;
}
int main()
{
int u,v;
scanf("%d",&t);
for(int ca=1;ca<=t;ca++)
{
memset(hd,-1,sizeof(hd));kh=0;memset(siz,0,sizeof(siz));
scanf("%d",&n);
for(int i=1;i<n;i++)
{
scanf("%d%d",&u,&v);
add(u,v);add(v,u);siz[u]++;siz[v]++;
}
for(int i=1;i<=n;i++)
{
scanf("%lf%lf",k+i,e+i);
k[i]/=100;e[i]/=100;
}
printf("Case %d: ",ca);
if(dfs(1,0)&&fabs(1-a[1])>1e-9) printf("%lf\n",c[1]/(1-a[1]));
else printf("impossible\n");
}
return 0;
}
hdu4035 Maze 题解的更多相关文章
- hdu4035 Maze
题目链接 hdu4035 Maze 题解 f[u]表示在节点u通关的所需的边数期望 转移方程分叶子节点和非叶子点讨论 发现都可以化成f[x]=af[1]+bf[dad]+c的形式 然后推一下系数 还是 ...
- [HDU4035] Maze(概率DP)
HDU4035 有\(n\)个房间 , 由\(n-1\)条隧道连通起来 , 实际上就形成了一棵树 , 从结点\(1\)出发 , 开始走 , 在每个结点\(i\)都有\(3\)种可能 : \(1.\)被 ...
- HDU-4035 Maze
http://acm.hdu.edu.cn/showproblem.php?pid=4035 树上的概率dp. Maze Time Limit: 2000/1000 MS (Java/Others ...
- HDU4035 Maze(师傅逃亡系列•二)(循环型 经典的数学期望)
When wake up, lxhgww find himself in a huge maze. The maze consisted by N rooms and tunnels connecti ...
- hdu4035 Maze 【期望dp + 数学】
题目链接 BZOJ4035 题解 神题啊...orz 不过网上题解好难看,数学推导不写\(Latex\)怎么看..[Latex中毒晚期] 我们由题当然能很快写出\(dp\)方程 设\(f[i]\)表示 ...
- [hdu4035] Maze【概率dp 数学期望】
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4035 真的是一道好题,题解比较麻烦,我自己在纸上写了好大一块草稿才搞出来,不用公式编辑器的话就很难看清楚 ...
- HDU-4035 Maze (概率DP求期望)
题目大意:在一个树形迷宫中,以房间为节点.有n间房间,每间房间存在陷阱的概率为ki,存在出口的概率为ei,如果这两种情况都不存在(概率为pi),那么只能做出选择走向下一个房间(包括可能会走向上一个房间 ...
- HDU4035 Maze 【树形DP】【期望DP】
题目分析: 以前一直不会这个方法, 我好菜啊. 转移分为三个部分,一个是直接成功,一个是转移到E1,还有一个是转移到自己周围的一圈儿点. 如果是叶子那么只能转移到父亲,如果不是叶子可以把非叶子的转移代 ...
- HDU4035 Maze(期望DP)
题意 抄袭自https://www.cnblogs.com/Paul-Guderian/p/7624039.html 有n个房间,由n-1条隧道连通起来,形成一棵树,从结点1出发,开始走,在每个结点i ...
随机推荐
- CentOS6.5环境下搭建Apache httpd服务器
前期准备: 1.CentOS6.5虚拟系统: 2.CentOS6.5 IP地址:192.168.2.99 3.虚拟系统能上外网 下面我们就开始配置: 第一步:安装 首先我们需要把Apache http ...
- pytorch torchversion自带的数据集
from torchvision.datasets import MNIST # import torchvision # torchvision.datasets. #准备数据集 mnist = M ...
- EasyPoi 导入导出Excel时使用GroupName的踩坑解决过程
一.开发功能介绍: 简单的一个excel导入功能 二.Excel导入模板(大致模板没写全): 姓名 性别 生日 客户分类 联系人姓名 联系人部门 备注 材料 综合 采购 张三 男 1994/05/25 ...
- MySQL如何创建一个好索引?创建索引的5条建议【宇哥带你玩转MySQL 索引篇(三)】
MySQL如何创建一个好索引?创建索引的5条建议 过滤效率高的放前面 对于一个多列索引,它的存储顺序是先按第一列进行比较,然后是第二列,第三列...这样.查询时,如果第一列能够排除的越多,那么后面列需 ...
- 【JAVA基础】02 Java基础语法
一.内容 注释 关键字 标识符 常量.进制和进制转换 变量 数据类型和类型转换 运算符 语句 二.注释 注释概述 用于解释说明程序的文字 Java中注释分类格式 单行注释 格式://注释文字 多行注释 ...
- 谷歌浏览器报错Unchecked runtime.lastError: The message port closed before a response was received.。
浏览器版本 : 报错原因:扩展程序问题 解决建议:打开chrome://extensions/,逐一关闭排查
- 《例说51单片机(C语言版)(第3版)》——1-3 认识MCS-51的存储器结构
本节书摘来异步社区<例说51单片机(C语言版)(第3版)>一书中的第1章,第1.3节,作者:张义和,王敏男,许宏昌,余春长,更多章节内容可以访问云栖社区"异步社区"公众 ...
- MySQL用另一张表的字段值Update本表
SQL示例: UPDATE TABLE1 a, TABLE2 b SET a.field1 = b. field1 [, a.field2 = b.field2, ...] WHERE a.connn ...
- 10倍处理能力 阿里云推云上首个支持12层4K非编NAS产品
5月23日,阿里云在2017云栖大会·成都峰会上正式推出了云上首个支持广电级非编的文件存储产品------NAS Plus,作为阿里云文件存储NAS的升级款,NAS Plus提供高达200Gbps的吞 ...
- 发布AI芯片昆仑和百度大脑3.0、L4自动驾驶巴士量产下线,这是百度All in AI一年后的最新答卷...
机器之心报道,作者:李泽南. 去年的 7 月 5 日,百度在北京国际会议中心开办了首届「AI 开发者大会」.在会上,百度首次喊出了「All in AI」的口号.一年的时间过去了,今天在同样地点举行的第 ...