B君的连通
题目大意
B国拥有n个城市,其交通系统呈树状结构,即任意两个城市存在且仅存在一条交通线将其连接。A国是B国的敌国企图秘密发射导弹打击B国的交通线,现假设每条交通线都有50%的概率被炸毁,B国希望知道在被炸毁之后,剩下联通块的个数的期望是多少?

解题思路
因为这是一棵树,所以每炸断一条路就会多一个连通块,所以期望为 1 2 ( n − 1 ) + 1 \frac{1}{2}(n-1)+1 21(n−1)+1 ,再乘上 2 n − 1 2^{n-1} 2n−1 即可。
code
#include<iostream>
#include<cstdio>
using namespace std;
const int mod=1e9+7;
int n;
int main()
{
cin>>n;
int ans=n+1;
for(int i=0;i<n-2;i++)
ans=ans*2%mod;
cout<<ans<<endl;
}
本文介绍了B国交通网络在遭受打击后连通块数量期望的计算方法。由于网络呈树状,每条线路被破坏都会增加一个连通块,因此期望值为(n-1)/2,最终答案为该值乘以所有线路被破坏的概率2^(n-1)。
755

被折叠的 条评论
为什么被折叠?



