洛谷P4180 【模板】严格次小生成树[BJWC2010](BZOJ1977)

这篇博客介绍了如何解决洛谷P4180问题,涉及次小生成树的概念。文章提供了BZOJ题目的链接,并指出次小生成树是一个基础题目。解题思路包括首先构建最小生成树,然后利用倍增算法找出最小生成树中边的最大和次大值,最后通过求解最近公共祖先(LCA)来更新答案。关键在于理解次小生成树是替换最小生成树中的一条边得到的。
摘要由CSDN通过智能技术生成

次小生成树

洛谷题目传送门
BZOJ题目传送门

次小生成树裸题。

先求出最小生成树,然后写个倍增算出最小生成树边的最大和次大值。最后求LCA的时候更新答案就好了。

次小生成树一定是最小生成树换了一条边。

代码:

#include<cctype>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 400005
#define M 400005
#define F inline
using namespace std;
typedef long long LL;
struct edg{ int x,y,z; }e[M];
struct edge{ int next,to,dis; }ed[N<<1];
int n,m,k,p,h[N],dep[N],ffa[N],fa[N][20],mx1[N][20],mx2[N][20];
bool f[M]; LL ans,ret=0x7fffffff;
F char readc(){
    static
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值