CodeForces 643E
来源:互联网 发布:口风琴基础教程软件 编辑:程序博客网 时间:2024/06/11 09:01
求一颗有根树,在任意一条边相互独立,并且有0.5的概率消失的情况下,
树的深度的期望
#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<iostream>#include<algorithm>#include<queue>using namespace std;const int N=5e5+100;int du[N];double dp[N][110];int T=60;int pre[N];int main(){#ifdef DouBifreopen("in.cpp","r",stdin);#endif // gh546 int q,n; while(scanf("%d",&q)!=EOF){ n=1;memset(du,0,sizeof(du)); for(int i=0;i<=T;i++)dp[1][i]=1; while(q--){ int op,v;scanf("%d%d",&op,&v); if(op==1){ n++; for(int i=0;i<=T;i++)dp[n][i]=1; pre[n]=v; double tmp=dp[v][0]; du[v]++; dp[v][0]=pow(0.5,du[v]); int k=1; while(k<=T&&pre[v]){ int u=pre[v]; double tmp1=dp[u][k]; dp[u][k]/=(0.5+0.5*tmp); dp[u][k]*=(0.5+0.5*dp[v][k-1]); k++; v=u; tmp=tmp1; } } else { double ans=0;// for(int i=0;i<=n;i++){// printf("%lf ",dp[v][i]);// }printf("\n"); for(int i=1;i<=T;i++){ ans+=(dp[v][i]-dp[v][i-1])*i; } printf("%lf\n",ans); } } } return 0;}
0 0
- CodeForces 643E
- CodeForces 643E
- codeforces 163E e-Government
- 【Codeforces 163E】E-Government
- Codeforces 78E Evacuation
- 【dp】codeforces 83E
- Codeforces 124 E
- Codeforces 231E
- Codeforces 231E - Cactus
- Codeforces #163 Div2 E
- codeForces 35E
- Codeforces 35E
- Playlist codeforces 268E
- Codeforces 148E(Porcelain)
- codeforces round#177 E
- codeforces 203E Transportation
- CodeForces 254 E Dormitory
- codeforces日记371e
- Html5为什么只需要写<!doctype html>?
- Java Number类
- PHP魔术方法之__set_state()
- Android学习之一:通讯录
- 161025
- CodeForces 643E
- ffmpeg中文文档
- mysql时间存储用什么类型
- LeetCode 151 Reverse Words in a String (字符串处理 推荐)
- Win10开发7
- 面向对象(基础篇)
- Bootstrap 栅格系统
- JS异步处理
- listview的item向上偏移