zoukankan      html  css  js  c++  java
  • Codeforces 280C Game on tree (期望线性性)

    题目大意:给你一棵树,1号节点是根,每次等概率选择没有被染黑的一个节点染黑其所有子树中的节点,问染黑所有节点的期望次数






    然后这个题一样看过去就是期望DP

    因为期望的线性性,我们可以分别考虑每一个节点被染黑的期望次数

    如果他的某一个祖先被然黑了,那他也会被染黑,也即使他的操作数就是0,所以说,这个点的只有当选他本身的时候,

    才会有操作数,其期望为 1/dep[i]






     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define N 100010
     4 int n,tot=0,head[N]= {0};
     5 struct Edge
     6 {
     7     int v,nxt;
     8 } E[N<<1];
     9 void add(int u,int v)
    10 {
    11     E[++tot]=(Edge)
    12     {
    13         v,head[u]
    14     };
    15     head[u]=tot;
    16 }
    17 int dep[N]= {0};
    18 void dfs(int u,int fa)
    19 {
    20     dep[u]=dep[fa]+1;
    21     for(int i=head[u]; i; i=E[i].nxt)
    22     {
    23         int v=E[i].v;
    24         if(v==fa)continue;
    25         dfs(v,u);
    26     }
    27 }
    28 int main()
    29 {
    30     scanf("%d",&n);
    31     for(int i=1; i<n; i++)
    32     {
    33         int u,v;
    34         scanf("%d%d",&u,&v);
    35         add(u,v);
    36         add(v,u);
    37     }
    38     dfs(1,0);
    39     double ans=0;
    40     for(int i=1; i<=n; i++)ans+=1.0/(double)dep[i];
    41     printf("%lf",ans);
    42     return 0;
    43 }
  • 相关阅读:
    第一章、Docker 简介
    远程库的创建及操作
    分支
    Git常用命令
    初始化本地仓库
    Git的本地结构与远程中心
    Git的安装
    版本控制系统
    冒泡排序
    选择排序
  • 原文地址:https://www.cnblogs.com/zhangbuang/p/10970284.html
Copyright © 2011-2022 走看看