[NOI题库]4.5算法之动态规划9276:Connected Graph DP

本文探讨如何通过编程计算不同连通无向图的数量,给出了一种利用排列组合的方法,并详细介绍了递推公式及其背后的逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述
An undirected graph is a set V of vertices and a set of E∈{V*V} edges.An undirected graph is connected if and only if for every pair (u,v) of vertices,u is reachable from v.

You are to write a program that tries to calculate the number of different connected undirected graph with n vertices.
For example,there are 4 different connected undirected graphs with 3 vertices.

题解:

这就是NOIP2017提高组初赛选择题第8题……考场上用排列组合算的,结果这道题就不会做了……答案可以用总情况-不合法情况。令f[i]表示i个点连通的方案数,g[i]表示i个点不连通的方案数,然后考虑第一个点所在连通块有多少个点。若有k个点,那么剩下的nk个点之间就可以随意连边,这样整个图一定是不连通的,显然,有n个点的图,无向边有C2n条,那么方程就可以推了:

g[i]=k=1i1Ck1i1×f[k]×2C2nk
f[i]=C2ig[i]

由于要写高精度,所以没有写代码,如有错误很正常,欢迎指出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值