zoukankan      html  css  js  c++  java
  • 51nod 1632 B君的连通

    题目:

    这题看起来难,其实这么多概率啥的都是唬人的。甚至连快速幂都不用就可以解。

    解法:    n个节点,n-1条边,期望会有一半的边被炸毁(因为总体概率就是50%)。

        即(n-1)/2条边被炸毁,这时有(n+1)/2个连通块。(这个不是向下取整的)。
        所以f[n] = (n+1)/2*2^(n-1) = (n+1)*2^(n-2)。
     
     
     
    代码:
    #include <iostream>
    #include <algorithm>
    #include <stdio.h>
    #include <vector>
    #include <map>
    #include <set>
    #include <list>
    #include <queue> 
    using namespace std;
    typedef long long ll;
    #define INF 2147483647
    #define mod 1000000007
    
    int n,x,y; 
     
    int main(){
        cin >> n;
        for(int i = 0;i < n-1; i++){
            cin >> x >> y;
        }
        int ans = n+1;
        for(int i = 0;i < n-2; i++){
            ans = (ans*2)%mod;
        }
        cout << ans << endl;
        return 0;
    } 
  • 相关阅读:
    istio kiali 亲和性调度
    istio kiali 内部介绍
    istio kiali 可视化bookinfo
    Istio 部署Bookinfo 应用
    初探istio kiali
    安装Istio
    Istio 是什么?
    AQS源码浅析
    go 单元测试testify
    go unknown revision报错
  • 原文地址:https://www.cnblogs.com/zhangjiuding/p/7836972.html
Copyright © 2011-2022 走看看