3566: [SHOI2014]概率充电器

题意:一棵树,每个点\(q[i]\)的概率直接充电,每条边\(p[i]\)的概率导电,电可以沿边传递使其他点间接充电。求进入充电状态的点期望个数


糖教题解传送门

每个充电的点贡献1,就是求每个点充电的概率的和

考虑树形DP ,分别求子树内的影响和父亲的影响

\(g[i]\)表示i被子树i里的点充电的概率,\(f[i]\)表示i被充电的概率

因为被子树充电时子树里的点不可能被i充电,

\[g[i] = q_i \bigcup g_v : (i,v) \in E
\]

\[f[i] = P(fa被除了i之外的点充电) * p[(fa,i)] \bigcup g[i]
\]

因为事件互相独立,可以使用\(P(A+B) = P(A) + P(B) -P(A)P(B)\)

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
typedef unsigned long long ll;
const int N=5e5+5;
const double eps=1e-8;
inline int read() {
char c=getchar(); int x=0, f=1;
while(c<'0' || c>'9') {if(c=='-')f=-1; c=getchar();}
while(c>='0' && c<='9') {x=x*10+c-'0'; c=getchar();}
return x*f;
} int n, m, s, val[N], u, v; double p, q[N];
struct edge{int v, ne; double p;}e[N<<1];
int cnt=1, h[N], de[N];
inline void ins(int u, int v, double p) {
e[++cnt]=(edge){v, h[u], p}; h[u]=cnt;
e[++cnt]=(edge){u, h[v], p}; h[v]=cnt;
}
double g[N], f[N], ans;
inline double merge(double x, double y) {return x + y - x*y;}
inline double split(double x, double y) {return abs(1-y)<eps ? 1 : (x-y)/(1-y);}
void dfs1(int u, int fa) {
for(int i=h[u];i;i=e[i].ne) if(e[i].v != fa)
dfs1(e[i].v, u), g[u] = merge(g[u], g[e[i].v] * e[i].p);
}
void dfs2(int u, int fa) {
ans += f[u];
for(int i=h[u];i;i=e[i].ne) if(e[i].v != fa)
f[e[i].v] = merge(g[e[i].v], split(f[u], g[e[i].v] * e[i].p) * e[i].p), dfs2(e[i].v, u);
} int main() {
freopen("in","r",stdin);
n=read();
for(int i=1; i<n; i++) u=read(), v=read(), scanf("%lf",&p), p/=100, ins(u, v, p);
for(int i=1; i<=n; i++) scanf("%lf", &q[i]), q[i]/=100;
dfs1(1, 0);
f[1]=g[1];
dfs2(1, 0);
printf("%.6lf", ans);
}

BZOJ 3566: [SHOI2014]概率充电器 [树形DP 概率]的更多相关文章

  1. BZOJ3566 [SHOI2014]概率充电器 (树形DP&概率DP)

    3566: [SHOI2014]概率充电器 Description 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品——概率充电器:“采用全新纳米级加工技术,实现元件与导线能否通电 ...

  2. BZOJ3566:[SHOI2014]概率充电器(树形DP,概率期望)

    Description 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品——概率充电器: “采用全新纳米级加工技术,实现元件与导线能否通电完全由真随机数决定!SHOI 概率充电器, ...

  3. BZOJ 3566: [SHOI2014]概率充电器( 树形dp )

    通过一次dfs求出dp(x)表示节点x考虑了x和x的子树都没成功充电的概率, dp(x) = (1-p[x])π(1 - (1-dp[son])*P(edge(x, son)).然后再dfs一次考虑节 ...

  4. [BZOJ 4033] [HAOI2015] T1 【树形DP】

    题目链接:BZOJ - 4033 题目分析 使用树形DP,用 f[i][j] 表示在以 i 为根的子树,有 j 个黑点的最大权值. 这个权值指的是,这个子树内部的点对间距离的贡献,以及 i 和 Fat ...

  5. [BZOJ 4455] [ZJOI 2016] 小星星 (树形dp+容斥原理+状态压缩)

    [BZOJ 4455] [ZJOI 2016] 小星星 (树形dp+容斥原理+状态压缩) 题面 给出一棵树和一个图,点数均为n,问有多少种方法把树的节点标号,使得对于树上的任意两个节点u,v,若树上u ...

  6. BZOJ3566: [SHOI2014]概率充电器 树形+概率dp

    3566: [SHOI2014]概率充电器 Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 1888  Solved: 857[Submit][Stat ...

  7. bzoj 3566: [SHOI2014]概率充电器

    Description 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品--概率充电器:"采用全新纳米级加工技术,实现元件与导线能否通电完全由真随机数决定!SHOI 概率 ...

  8. ●BZOJ 3566 [SHOI2014]概率充电器

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3566题解: 概率dp,树形dp 如果求出每个点被通电的概率t, 那么期望答案就是t1×1+t ...

  9. 【bzoj3566】[SHOI2014]概率充电器 树形概率dp

    题目描述 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品——概率充电器:“采用全新纳米级加工技术,实现元件与导线能否通电完全由真随机数决定!SHOI 概率充电器,您生活不可或缺的 ...

随机推荐

  1. BC#64 4.Tree

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=5589 对于u,v的xor和就是u到根的xor和 xor上 v到根的xor和.看到n<=5w,考虑莫队 ...

  2. HDFS(数学题)

    题目连接:http://acm.tju.edu.cn/toj/showp.php?pid=4119 4119.   HDFS Time Limit: 5.0 Seconds   Memory Limi ...

  3. 找出单链表中倒数第K个元素

  4. 在echarts3中使用字符云

    echarts2的官方API里是带有字符云的,但到了echarts3就被从官网上移除了,想要使用的话可以从github上下载: 下载地址:https://github.com/ecomfe/echar ...

  5. 《你不知道的JavaScript上卷》知识点笔记

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC" } p.p2 { margin: 0.0px ...

  6. Redis单机版安装

    1.工具简单介绍 1.博主使用的是Xshell工具 ps:需要设置端口和连接名称,端口一般默认为22,需要的童鞋可以自行百度 2.Redis单机版安装 第一步:安装gcc编译环境 yum instal ...

  7. Android-第一天

    1.google 2.application->application framework->libraries(调用关系) 3.strings.xml 是全局字符串的配置文件 4.ADT ...

  8. 系列3|走进Node.js之多进程模型

    文:正龙(沪江网校Web前端工程师) 本文原创,转载请注明作者及出处 之前的文章"走进Node.js之HTTP实现分析"中,大家已经了解 Node.js 是如何处理 HTTP 请求 ...

  9. F5负载均衡虚拟服务器配置FTP端口访问不了

    F5配置ip映射到地址池ftp服务,访问报错:FTP出现"数据 Socket 错误: 连接被拒""ftp 列表错误"解决办法 1条回答 FTP的vs类型需要选择 ...

  10. elasticsearch安装ik分词器

    一.概要: 1.es默认的分词器对中文支持不好,会分割成一个个的汉字.ik分词器对中文的支持要好一些,主要由两种模式:ik_smart和ik_max_word 2.环境 操作系统:centos es版 ...