zoukankan      html  css  js  c++  java
  • 概率期望——cf round362 div1

    给定n个数,求i的位置的期望

    那么反向考虑,j!=i排在i前面的概率是0.5,那么对i的位置的期望贡献就是1*0.5

    这题就是拓展应用一下

    #include<bits/stdc++.h>
    using namespace std;
    
    const int maxn = 200005;
    const double esp = 1e-7;
    
    vector<int>G[maxn];
    int n,size[maxn];
    double E[maxn];
    
    void dfs1(int u,int pre){
        size[u]=1;
        for(int i=0;i<G[u].size();i++){
            int v=G[u][i];
            if(v==pre)continue;
            dfs1(v,u);
            size[u]+=size[v];
        }
    }
    
    void dfs2(int u,int pre){
        if(u==1)E[u]=1.0;
        for(int i=0;i<G[u].size();i++){
            int v=G[u][i];
            if(v==pre)continue;
            E[v]=1.0*(size[u]-size[v]-1)/2+E[u]+1;
            dfs2(v,u);
        }
    }
    
    int main(){
        cin>>n;
        for(int i=2;i<=n;i++){
            int fa;
            cin>>fa;
            G[fa].push_back(i);
            G[i].push_back(fa);
        }
        dfs1(1,1);
        dfs2(1,1);    
        for(int i=1;i<=n;i++)
            cout<<E[i]<<" ";
    }
  • 相关阅读:
    Powershell分支条件
    Powershell基础
    初识PowerShell
    设计模式--策略模式
    设计模式--简单工程模式
    StandardWrapper
    Tomcat的安全性
    算法效率 简单的增长率 参照

    排序算法之 归并排序
  • 原文地址:https://www.cnblogs.com/zsben991126/p/11068459.html
Copyright © 2011-2022 走看看