[算法日常] 次小生成树

次小生成树

前置知识:

  • 图论
  • 最小生成树
  • 倍增求LCA

概念

次小生成树,分为严格次小生成树和非严格次小生成树。

一下设图为 G G G,最小生成树为 T T T,非严格次小生成树为 T ′ T' T,严格次小生成树为 T ′ ′ T'' T′′

非严格次小生成树:在图 G G G 的所有除了 T T T 的生成树中,最小的那个。即 T ′ ≥ T T'\ge T TT

严格次小生成树:在 G G G 的除了 T T T 的生成树中,最小的大于 T T T 的生成树。即 T ′ ′ > T T''>T T′′>T​。

例题

洛谷P4180[BJWC2010] 严格次小生成树

解法:

想要求解(非)严格次小生成树,那么首先肯定需要建出最小生成树,然后在 T T T 上面修改。

假设我们已经建出 T T T

首先可以想到,若要将 T T T 改为 T ′ T' T T ′ ′ T'' T′′,仅需在 T T T​ 上面修改一条边。

那么我们就可以枚举非树边,尝试将其插入进去。

  • 加入了 5 → 7 5\rightarrow 7 57,长度为 8 8 8 的非树边。

那么如果加入了一条边,肯定会构成环。 ( n − 1 + 1 ) = n (n-1+1)=n (n1+1)=n

上图即出现了环:

那么,上面的环中,除了 5 → 7 5\rightarrow 7 57 的这条外,就是 1 → 3 1\rightarrow 3

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值