n个点的基环树数量
某裴姓蒟蒻上午提了一个小问题(rt)。。然后他升华了。。升华之前感受到了神犇的力量。。。
方法一:
g[n][k]表示n个点,k条边的无向图(不一定连通)
f[n][k]表示表示n个点,k条边的无向连通图
咕咕了。。。自己讲不清。。。O(n^4)
方法二:
我们可以枚举环的大小,设为$i$,则可以从$ n$个中随意选$i$个点即$C_n^i$,造出本质不同的环的数量为$(i-1)!$,但是会有翻转同构,所以要$/2$;
当n个点有k个连通块,把他们连成一棵树的方案数是:$ \Pi sz_i \space* n^{k-2}$
证明:把连通块看成点,$sz_i$表示第$i$个连通块的点数
枚举$Prufer$序列,设$p_i$为$Prufer$序列中的第$i$项,$q_i$代表$i$在$Prufer$序列中的出现次数,
则有 $ \Sigma_{Prufer}\space \Pi sz_i^{q_i+1} \space q_i+1$相当于是$i$的度数,而每个点都有可能是连边的点,所以是$sz_i^{q_i+1}$
$\Pi sz_i \space \Sigma_{Prufer}\space \Pi sz_i^{q_i}$
$\Pi sz_i \space \Sigma_{Prufer} \space \Pi sz_{p_i}$
根据$Prufer$序列的性质,我们知道$Prufer$序列长$ k-2$并且每个位置都可以填$[1,k]$
所以根据乘法原理(或是说乘法分配律)可知:
$\Sigma_{Prufer} \space \Pi sz_{p_i}=\Pi_{p=1}^{k-2}\Sigma_{i=1}^k sz_i$
所以有$\Pi sz_i \space \Pi_{p=1}^{k-2}\Sigma_{i=1}^k sz_i$,而$\Sigma_{i=1}^k sz_i=n$
即$\Pi sz_i \space n^{k-2}$
证毕
此时每个点的$sz$都是$1$,除了那个环的$sz$是$i$,共有$n-i+1$个点(连通块)
所以公式为$C_n^i*(i-1)!*i*n^{n-i+1-2}=C_n^i*i!*n^{n-i-1}$
咕了一天qwq2019.05.20
n个点的基环树数量的更多相关文章
- [Codeforces235D]Graph Game——概率与期望+基环树+容斥
题目链接: Codeforces235D 题目大意:给出一棵基环树,并给出如下点分治过程,求点数总遍历次数的期望. 点分治过程: 1.遍历当前联通块内所有点 2.随机选择联通块内一个点删除掉 3.对新 ...
- 洛谷AT2046 Namori(思维,基环树,树形DP)
洛谷题目传送门 神仙思维题还是要写点东西才好. 树 每次操作把相邻且同色的点反色,直接这样思考会发现状态有很强的后效性,没办法考虑转移. 因为树是二分图,所以我们转化模型:在树的奇数层的所有点上都有一 ...
- Hdu第八场 树形dp+基环树
Card Game 每个牌背面的数字朝正面的数字连一条有向边 则题目变为问你最少翻转多少次 能使得每个数字的入度不超过1 首先判断图中每个连通块是不是树或者基环树 因为只有树或者基环树能使得每个点的入 ...
- HDU6403 Card Game【基环树 + 树形DP】
HDU6403 Card Game 题意: 给出\(N\)张卡片,卡片正反两面都有数字,现在要翻转一些卡片使得所有卡片的正面的值各不相同,问最小翻转次数和最小翻转情况下的不同方案数 \(N\le 10 ...
- Luogu P2081 [NOI2012]迷失游乐园 | 期望 DP 基环树
题目链接 基环树套路题.(然而各种错误调了好久233) 当$m=n-1$时,原图是一棵树. 先以任意点为根做$dp$,求出从每一个点出发,然后只往自己子树里走时路径的期望长度. 接着再把整棵树再扫一遍 ...
- 【BZOJ1791】【IOI2008】【基环树】island(status第一速度)
1791: [Ioi2008]Island 岛屿 Time Limit: 20 Sec Memory Limit: 162 MB Submit: 908 Solved: 159 [Su ...
- 『Island 基环树直径』
Island(IOI 2008) Description 你准备浏览一个公园,该公园由 N 个岛屿组成,当地管理部门从每个岛屿 i 出发向另外一个岛屿建了一座长度为 L_i 的桥,不过桥是可以双向行走 ...
- 【BZOJ4883】 [Lydsy1705月赛]棋盘上的守卫(最小生成树,基环树)
传送门 BZOJ Solution 考虑一下如果把行,列当成点,那么显然这个东西就是一个基环树对吧. 直接按照\(Kruscal\)那样子搞就好了. 代码实现 代码戳这里
- bzoj1791[IOI2008]Island岛屿(基环树+DP)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1791 题目大意:给你一棵n条边的基环树森林,要你求出所有基环树/树的直径之和.n< ...
随机推荐
- CH6802 車的放置 和 CH6B24 Place the Robots
6802 車的放置 0x60「图论」例题 描述 给定一个N行M列的棋盘,已知某些格子禁止放置.问棋盘上最多能放多少个不能互相攻击的車.車放在格子里,攻击范围与中国象棋的"車"一致. ...
- WPF如何更改系统控件的默认高亮颜色 (Highlight brush)
我们在用WPF时, 经常会对系统控件的默认高亮等等颜色进行更改. 以前通常是用controlTemplate来实现. 今天发现一个更合理或者简单的方法: 用系统默认颜色的key, 比如 SystemC ...
- 【转】 Pro Android学习笔记(四十):Fragment(5):适应不同屏幕或排版
目录(?)[-] 设置横排和竖排的不同排版风格 改写代码 对于fragment,经常涉及不同屏幕尺寸和不同的排版风格.我们在基础小例子上做一下改动,在横排的时候,仍是现实左右两个fragment,在竖 ...
- logback 相关
%logger{36} 表示logger名字最长36个字符,否则按照句点分割. %X{key} to get the value that are stored in the MDC map ${lo ...
- java基础知识(5)---继承
继 承:(面向对象特征之一)好处:1:提高了代码的复用性.2:让类与类之间产生了关系,提供了另一个特征多态的前提. 父类的由来:其实是由多个类不断向上抽取共性内容而来的.java中对于继承,java只 ...
- VisualGDB系列6:远程导入Linux项目到VS中
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文介绍如何将Linux机器上的Linu ...
- BarTender SDK 实现调用模板条码打印
Demo:MyZebraPrint 基于BatTender .Net SDK 实现调用模板进行条码打印 有需要的朋友可以拿去研究下 在已经安装了BatTender10.1的电脑里测试通过. 下载地址: ...
- java电子书chm全套下载
链接:http://pan.baidu.com/s/1qWmMlYk 密码:us3x 版权声明:本文为博主原创文章,未经博主允许不得转载.
- 高级查询子条件查询filter
Filter Context 在查询过程中,只判断该文档是否满足条件,只有Yes或者No { "query":{ "bool":{ //布尔关键词 " ...
- ubuntu安装wget
ubuntu安装wget apt-get update apt-get install wget wget --version