当前位置: 首页 > news >正文

严格次小生成树板子

严格次小生成树:

性质:

  1. 边权之和比最小生成树大,比其他生成树小

  2. 由最小生成树删除一条树边,加入一条非树边得到

解法:

  1. 枚举非树边(u,v):此时能删除的是(u,v)最小路径上的边

  2. 使用倍增法维护最小路径上的最大值和次大值(防止操作后生成树权值和最小生成树权值一样)

const int M =3e5+5;
int n,m;
int f[M];
struct node{int u,v,w;node(){}node(int a,int b,int c){u=a;v=b;w=c;}
};
vector<node>a;
int find(int x){if(f[x]!=x){f[x]=find(f[x]);}return f[x];
}
void merge(int x,int y){if(find(x)!=find(y)){f[find(x)]=find(y);}
}
vector<pii>e[M];
int dep[M];
int vis[M];
int fa[M][30];
int st1[M][30];
int st2[M][30];int ans = inf;
int sum = 0;
void dfs(int u,int Fa,int we){fa[u][0]=Fa;dep[u]=dep[Fa]+1;st1[u][0]=we;st2[u][0]=-inf;for(int j=1;j<=29;j++){fa[u][j]=fa[fa[u][j-1]][j-1];st1[u][j]=max(st1[u][j-1],st1[fa[u][j-1]][j-1]);st2[u][j]=max(st2[u][j-1],st2[fa[u][j-1]][j-1]);if(st1[u][j-1]>st1[fa[u][j-1]][j-1]){st2[u][j]=max(st2[u][j],st1[fa[u][j-1]][j-1]);}else if(st1[u][j-1]<st1[fa[u][j-1]][j-1]){st2[u][j]=max(st2[u][j],st2[u][j-1]);}}for(auto[v,w]:e[u]){if(v==Fa)continue;dfs(v,u,w);}
}
int lca(int u,int v){if(dep[u]<dep[v])swap(u,v);for(int j=29;j>=0;j--){if(dep[fa[u][j]]>=dep[v]){u=fa[u][j];}if(u==v)return u;}for(int j=29;j>=0;j--){if(fa[u][j]!=fa[v][j]){u=fa[u][j];v=fa[v][j];}}return fa[u][0];
}int work(int u,int to,int val){int res= - inf;for(int j = 29 ;j>=0;j--){if(dep[fa[u][j]]>=dep[to]){if(st1[u][j]!=val)res=max(res,st1[u][j]);else res = max(res,st2[u][j]);u=fa[u][j];}}return res;
}void solve(){cin>>n>>m;rep(i,1,n)f[i]=i;rep(i,1,m){int x,b,c;cin>>x>>b>>c;a.pb(node(x,b,c));}sort(a.begin(),a.end(),[](node A,node B){return A.w<B.w;});int id=0;for(auto[u,v,w]:a){if(find(u)==find(v)){id++;continue;}vis[id]=1;merge(u,v);sum+=w;e[u].pb({v,w});e[v].pb({u,w});id++;}dfs(1,0,0);id=0;for(auto[u,v,w]:a){if(vis[id]){id++;continue;}ans=min(ans,sum - work(u, lca(u,v) , w)+w);ans=min(ans,sum - work(v, lca(u,v) , w)+w);id++;}cout<<ans<<endl;
}
http://www.gsyq.cn/news/48425.html

相关文章:

  • Python 字典Dictionary简介
  • 2025年船舶下水气囊生产厂家权威推荐榜单:平台底部支持气囊/高压橡胶气囊/沉箱移运气囊源头厂家精选
  • 实用指南:toLua[六] Examples 05_LuaCoroutine分析
  • 2025年石岛红光板源头厂家综合评测:石岛红石材/中国黑石材/五莲灰石材源头厂家精选
  • 2FSK 调制指数 、相关系数 、 频谱特性
  • 2025年山东艺考生文化课培训机构推荐:济南山师育才学校,艺考生文化课/全日制艺考生文化课/专注山东全日制教学
  • 2025年石家庄GEO推广公司权威推荐榜单:GEO排名优化/GEO营销/GEO招商源头公司精选
  • [电调]AM32电调调参系列 —— Motor KV参数分析
  • 剪映高级感口播字幕预设220M850款轻量合集,拖拽生成商业级动态文字(Win_Mac通用)
  • 手动清除Ubuntu系统中的内存缓存的步骤
  • VMware ESXi 8.0U3g 集成 RTL8111 / RTL8125 / RTL8126 / RTL8127 网卡驱动定制版
  • VMware ESXi 9.0.1.0 集成 RTL8111 / RTL8125 / RTL8126 / RTL8127 网卡驱动定制版
  • 基于微信小应用的垃圾分类管理系统【2026最新】
  • 完整教程:人体心率测量技术
  • 内江低噪音西林瓶灌装轧盖机选型,适配洁净车间
  • week3task
  • trick 选记
  • SpringBoot民宿管理系统l2548(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。 - 教程
  • Python 元组Tuple 简介
  • 算法-快速排序和归并排序
  • 思路
  • P14367 [JOISC 2018] 帐篷 / Tents
  • 代码加密技术 - 实践
  • Apache Struts远程代码执行漏洞CVE-2025-12703解析
  • python 单词搜索(回溯-矩阵-字符串-中等)含源码(二十) - 指南
  • PHP生成RSA密钥对及RSA签名验证类库
  • 2025年杭州维修手机培训公司权威推荐榜单:手机维修教程/手机屏幕维修/维修手机源头公司精选
  • 2025年A2级防火抗倍特板批发厂家权威推荐榜单:高压耐火墙面装饰板/手HPL防火板/隧道防火装饰板源头厂家精选
  • 11月13日打卡
  • Comparative linguistics