51NOD 1632 B君的连通 期望计算 推公式 打表
来源:互联网 发布:概念式建筑设计知乎 编辑:程序博客网 时间:2024/05/22 06:09
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1632#include<bits/stdc++.h>using namespace std;const long long MOD=1000000007;const int MAX=100007;long long Ans[MAX];int N,a,b;/*因为这是一棵树,所以每炸毁一条边就会产生一个联通块.当有N个点的时候,图中共有N-1条边.所以一共有2^(N-1)种情况.因为答案要求乘上2^(N-1)再对MOD取模的答案,所以消除了2^(N-1).Ans={ 1*C(N-1,1)*(1/(2^(N-1)))+2*C(N-1,2)*(1/(2^(N-1)))+3*C(N-1,3)*(1/(2^(N-1)))+ ... +N*C(N-1,N-1)*(1/(2^(N-1))) } * 2^(N-1).Ans= 1*C(N-1,1)+2*C(N-1,2)+3*C(N-1,3)+ ... +N*C(N-1,N-1).然后打个表发现上述式子可以简化为:Ans[1]=1,Ans[i]=2*Ans[i-1]+2^(i-2).用快速幂进行运算.*/long long QuickPow(long long a,long long n){ long long res=1; while (n) { if (n&1) res=(res*a)%MOD; n>>=1; a=(a*a)%MOD; } return res;}int main(){ Ans[1]=1; for (int i=2;i<MAX;i++) Ans[i]=(2*Ans[i-1]+QuickPow(2,i-2))%MOD; while (cin>>N) { for (int i=1;i<N;i++) cin>>a>>b; cout<<Ans[N]<<endl; } return 0;}
0 0
- 51NOD 1632 B君的连通 期望计算 推公式 打表
- 51NOD 1632 B君的连通(推公式)——算法马拉松16
- 51nod1632-推公式&快速幂-B君的连通
- 51nod 1632 B君的连通
- 51nod-1632B君的连通
- 51nod 1632 B君的连通
- 51Nod-1632-B君的连通
- 51nod 1632B君的连通(简单数学)
- 51nod 1670:打怪兽 递推
- 51nod 1670 打怪兽 【递推】
- 1632 B君的连通
- 51Nod-1062 序列中最大的数【序列计算+打表】
- 51Nod-算法马拉松23-B-谷歌的恐龙(数学期望)
- 51Nod-算法马拉松23 B 谷歌的恐龙 [概率期望]【数学】
- 51 NOD:1225 余数之和(推公式)
- HDU 5382 GCD?LCM! (递推公式 + 打表)
- XTU 1270 Unique Digit Number(打表,推公式)
- SGU 495 期望 简单推公式
- HDU 3308 LCIS 线段树 PushUp应用
- Base64 编码换行和+号遍空格的处理
- PHP Warning: date(): It is not safe to rely on the system’s timezone settings
- 1401-1500
- TCP、UDP数据包大小的限制
- 51NOD 1632 B君的连通 期望计算 推公式 打表
- DOS命令总结
- POJ 3468 A Simple Problem with Integers 线段树区间更新
- 1501-1600
- Python爬虫实现验证码登录
- CodeForces 527B - Error Correct System 哈希
- windows下的动态库
- 多继承与纯虚函数接口
- CodeForces 527C - Glass Carving set multiset 二分