题意

传送门

给定一棵 \(n\) 个节点的树,每条边有 \(\frac{1}{2}\) 的概率出现,可以得到一个森林,求这个森林邻接矩阵的秩的期望。

\(1\le n\le5\times10^5\)。

题解

此题关键在于一个重要结论:一个森林邻接矩阵的秩等于其最大匹配数 \(\times2\)。下面对其进行证明。

我们先看邻接矩阵的秩等于 \(n\) 的充要条件。由行列式的定义,有

\[\sum\limits_{\pi}(-1)^{\tau(\pi)}\prod\limits_{i=1}^nA_{i,\pi_i}\neq0
\]

若后面的积 \(\neq0\),则所有点都向另一点连边,且不重复。而森林无环,于是可以得出其存在完美匹配。而一个森林最多存在一个完美匹配,从叶子向上贪心即证。那么充要条件就是存在完美匹配。

再来看秩不等于 \(n\)。由某条奇妙的定理,我们知道对称矩阵的最大子式一定是主子式。那么其就是原图的一个导出子图。最大的存在完美匹配的导出子图,即是原图的最大匹配。于是证毕。

然后就可以算了。由期望的线性性,对每条边求其为匹配的概率,也就是方案数。但由于我们判断匹配的方式是从叶子向上的贪心,这不太好算。换个形式,对每个点求其与儿子匹配的方案数。这就是一个简单的树形 \(\text{DP}\) 了。于是此题得解。

CF1067E 题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  10. JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...

随机推荐

  1. VUE学习-优化过渡

    过渡(优化) 可复用的过渡 <transition> 或者 <transition-group>为根的组件 Vue.component('my-special-transiti ...

  2. 30分钟熟练使用最常用的ES6,还不学是等着被卷死?

    一. 关于ES6 了解一门技术或者语言,最好的方法就是知道它能做些什么 ES6 , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范 那么它为什么会出现呢? 每一次标准的诞生都意味着语 ...

  3. linux开机出现grub界面

    今天开机时候突然出现grub界面,并且卡在这里,记录一下解决办法 ①输入ls 2. 输入ls (hd0,6)/ 可以看到返回的就是linux系统的根目录,说明这个磁盘就是我们的系统的所在盘 如果ls ...

  4. ENGG1310 Electricity and electronics P1.2 Electronic Communication

    课程内容笔记,自用,不涉及任何 assignment,exam 答案 Notes for self use, not included any assignments or exams 一个 3h 的 ...

  5. 抽取JDBC工具类:JDBCUtils

    目的:简化书写 分析:     驱动注册,连接对象创建,其中包括输入驱动,数据库的地址,以及用户名和密码,每次编写代码都需要重复编写,如果每次使用的都是同一个账户的同一个数据库,代码的重复读很高,甚至 ...

  6. uni-app学习笔记之----传参、通讯

    1.页面传参 父级页面传递参数到详情页: 详情页得到参数: 打印: 2.组件通信 (1)子组件---->父组件:$emit() (2)父组件---->子组件:props (3)兄弟组件: ...

  7. DDL数据定义--Hive中数据可和表的基本操作(增删改查)

    数据库 创建数据库: CREATE DATABASE [ IF NOT EXISTS ]  database_name *****IF NOT EXISTS进行判断,避免创建的数据库已经存在的错误 创 ...

  8. 简单了解如何自己动手制作RPM包

    导读 RPM文件在Linux系统中的安装最为简便.以著名的图像处理软件XV为例,其RPM包xv-3.10a-13.i386.rpm可以在该程序的主页中下载取得. 我们介绍如何自己动手制作RPM包.0, ...

  9. 调度平台&定时任务

    一.介绍: 1.调度平台能够定时 自动调用我们的脚本或程序,如每周.每天.每隔几小时等: 2.jenkins也可以算一种调度平台 但不是特别好,为了统一化管理.调度还是用专门的任务调度平台比较好 为什 ...

  10. next_permutation / prev_permutation 用法

    给定输入的序列 a(整数即可,其他无限制条件),next_permutation(a + 1, a + n + 1) 可以求出 a 的关于值的下一个排列,prev_permutation(a + 1, ...