【51nod1677】treecnt(树上数学题)

点此看题面

大致题意: 给你一个节点从1~n编号的树,让你从中选择k个节点并通过选择的边联通,且要使选择的边数最少,让你计算对于所有选择k个节点的情况最小选择边数的总和。


题解

这道题乍一看很麻烦:最短路径最小生成树 L C A LCA LCA?通通都不用!!!

其实,这道题就是一道很简单的数学题。
这里写图片描述

如上图所示,对于某一条边w,假设它的一边共有t个节点,则显然它的另一边共有n-t个节点。

对于一条边的贡献,我们可以这样理解:在多少种情况下,这条边的两边都有被选入k个点中的点,此时这个点就必须被选。

而对于这些点的分布,有以下三种情况:

这条边的两边都有点被选,这种情况的可能性就是我们要求的,但是难以直接计算。

所有被选中的点都在这条边的左面,由于这条边的左边共有t个点,因此这种情况的可能性为 C t k C_t^k Ctk

所有被选中的点都在这条边的右面,由于这条边的右边共有n-t个点,因此这种情况的可能性为 C n − t k C_{n-t}^k Cntk

由于总情况数为 C n k C_n^k Cnk,所以,这条边的两边都有点被选的可能性就是 C n k C_n^k Cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值