A国拥有n个城市,其交通系统呈树状结构,即任意两个城市存在且仅存在一条路径将其连接。B国是A国的敌国企图秘密发射导弹打击A国,由于情报有限A国的特工们并不知道有哪几座城市会被打击。一座城市被炸毁后,与其相连的交通线也将损毁。现假设每座城市都有50%的概率被炸毁,问B国发动袭击后A国期望有多少对城市仍连通。

样例解释:

城市{1,2,3}被炸毁:没有城市连通
城市{1,2}被炸毁:没有城市连通
城市{1,3}被炸毁:没有城市连通
城市{2,3}被炸毁:没有城市连通
城市1被炸毁:城市{2,3}连通
城市2被炸毁:没有城市连通
城市3被炸毁:城市{1,2}连通
没有城市被炸毁:城市{1,2}、{2,3}、{1,3}连通
Input
一个数n(2<=n<=100000)
接下来n-1行,每行两个数x,y表示一条交通线。(1<=x,y<=n)
数据保证其交通系统构成一棵树。
Output
一个数,表示答案乘2^n后对1,000,000,007取模后的值。
Input示例
3
1 2
2 3
Output示例
5

题解

代码

#include<bits/stdc++.h>
#define mod 1000000007
#define inv 499122177
#define pa pair<int,int>
typedef __float128 F;
typedef long long ll;
const double eps=0.00001;
using namespace std;
inline int read()
{int x=0;char ch=getchar();while (ch<'0'||ch>'9') ch=getchar();while (ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x;
}
int tot,n,ret[200005],Next[200005],Head[100005];
ll sum[100005],ans[100005];
int fac[100005],size[100005];
inline void ins(int u,int v){ret[++tot]=v;Next[tot]=Head[u];Head[u]=tot;}
void dfs(int u,int f)
{sum[u]=size[u]=1;for (int i=Head[u];i;i=Next[i]){if (ret[i]==f) continue;dfs(ret[i],u);ans[u]=(ans[u]*fac[size[ret[i]]]+ans[ret[i]]*fac[size[u]]+sum[u]*sum[ret[i]])%mod;sum[u]=(sum[u]*fac[size[ret[i]]]+sum[ret[i]]*fac[size[u]-1])%mod;size[u]+=size[ret[i]];}
}
int main()
{n=read();fac[0]=1;for (int i=1;i<=n;i++){fac[i]=fac[i-1]<<1;fac[i]-=(fac[i]>=mod)*mod;}for (int i=1;i<n;i++){int u=read(),v=read();ins(u,v);ins(v,u);}dfs(1,0);printf("%lld",ans[1]);return 0;
}

【51Nod1679】连通率相关推荐

  1. 51nod1679 连通率

    1679 连通率  基准时间限制:0.5 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 A国拥有n个城市,其交通系统呈树状结构,即任意两个城市存在且仅存在一条路径将 ...

  2. 无线传感器网络节点连通率

    前段时间忙学业,现在来总结学习中遇到的问题及解决方法. 第一个问题是这样的: 在1x1的单位矩形中随机部署传感器节点,而且假设每个节点的通信半径一样,要求利用蒙特卡洛算法进行1000次试验分别模拟出连 ...

  3. matlab节点连通率,利用MATLAB仿真节点个数和节点通信半径与网络连通率的关系

    一.目的 ①在不同节点个数的情况下,用Matlab拟合出连通率与通信半径的关系曲线. ②在不同节点通信半径的情况下,用Matlab拟合出连通率与节点个数的关系曲线. 二.方法描述 在1x1的单位矩形中 ...

  4. MATLAB仿真节点个数和节点通信半径与网络连通率的关系,WSN实验

    判断连通的方法 1.不同节点数n,连通率(y轴)和连通半径(x轴)的关系. function函数: function [rate_1]=liantong(jiedian) rate_1 = zeros ...

  5. WSN无线传感网络--网络连通率测试

    实现语言:java 程序源码:https://github.com/kevinten10/Wireness-Network (1)在不同节点数目n情况下,用Matlab拟合出连通率与通信半径的关系曲线 ...

  6. 欧洲模拟卡车2(TruckersMP EU)测试欧服连通率的脚本

    欧洲模拟卡车2欧服的服务器据国内较远,网络连接并不稳定. 在玩儿欧服的朋友经常想知道可量化的网络连接状况. 简单写了个小脚本,一次性检测所有欧洲服务器连接状态. 使用方法: 先确认可以正常上网,比如百 ...

  7. matlab节点连通率,利用matlab仿真最小发射功率下wsn的连通性和覆盖率.docx

    利用matlab仿真最小发射功率下wsn的连通性和覆盖率.docx 江南大学物联网ZK1/5一题目利用MATLAB仿真最小发射功率下WSN的连通性和覆盖率.二目的(1)在固定节点个数的前提下,仿真求得 ...

  8. 【WSN】基于COMPOW协议下的网络连通率和覆盖率附matlab代码

    1 简介 COMPOW (COMMON POWER)协议是一种简单的将功率控制与路由协议相结合的解决方案,其基本思想是:所有的传感器节点使用一致的发射功率,在保证网络连通的前提下将功率最小化.COMP ...

  9. 51nod 1679 连通率

    前言 发现我现在树的题什么也不会了.. 就只会树剖和dsu.. 题解 暴力的做法很容易想到 就是枚举两个点,那么他对答案的贡献就是 2n−(dep[x]+dep[y]−2∗dep[LCA]+1) 2 ...

最新文章

  1. 人工智能灵魂注入,燃烧你的卡路里——2018,你AI了吗!?
  2. 如何简单形象又有趣地讲解神经网络是什么?(知乎) 说的人很多,理解很充分_kebu12345678的博客-CSDN博客_神经网络知乎
  3. git创建与合并分支
  4. C++知识点44——类的继承概述
  5. SQL中的sysobjects与syscolumns
  6. java listen_Java进阶-IO基础
  7. Oracle Service Bus –线程阻塞案例研究
  8. [Apache]安装中出现的问题
  9. 一步一步写算法(之排序二叉树的保存和加载)
  10. 中国塑料泵行业市场供需与战略研究报告
  11. 解决curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
  12. java md5方法 for Android
  13. Mysql-mmm配置全自动切换主从关系和读写分离
  14. 第一个python程序:爬虫下载课件
  15. HTML5+CSS3+Bootstrap开发静态页面嵌入android webview中
  16. font字体的一些常用代码
  17. 清华大学计算机杜瑜皓,我在清华等你来 | 金策:从容淡定 “金牌”之风
  18. ym——Android从零开始(27)(山寨版微信-下)(新)
  19. UI前端常用的15个超赞的配色网站
  20. Android Q 下拉状态栏快捷开关解析

热门文章

  1. win7防火墙例外设置方法_win7防火墙添加端口方法
  2. mysql spj_MySQL查询优化器--非SPJ优化--LIMIT优化
  3. wx小程序笔记(2)
  4. 鸿蒙源码图片,全网最全的鸿蒙源码结构分析(附自制4张架构图)
  5. 计算机远程安装win7,初试使用Ghost工具远程安装win7操作系统
  6. 工程力学(17)—应力状态和强度理论
  7. 绕CDN查找真实IP方法
  8. X86 android r7 z3735,安卓工业平板电脑android系统下各大主流CPU性能大对比分析
  9. 第二百四十一节,Bootstrap进度条媒体对象和 Well 组件
  10. jenkins部署的时候WARNING: IPv4 forwarding is disabled. Networking will not work.