博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj3732-Network【Kruskal重构树模板】
阅读量:2022 次
发布时间:2019-04-28

本文共 761 字,大约阅读时间需要 2 分钟。

正题

题目链接:


题目大意

一张图,每次询问两个点,求这两个点之间路径的最大值的最小是多少。


解题思路

构造一颗 K r u s k a l Kruskal Kruskal重构树然后就是模板了。


c o d e code code

#include
#include
#include
using namespace std;const int N=2e5+10;struct node{
int x,y,w; }e[N];struct edge_node{
int to,next;}a[N];int n,m,k,tot,cnt,root,ls[N],val[N];int top[N],dep[N],siz[N],son[N],fa[N];void addl(int x,int y){
a[++tot].to=y; a[tot].next=ls[x]; ls[x]=tot;}bool cmp(node x,node y){
return x.w
siz[son[x]]) son[x]=y; }}void dfs2(int x){
if(son[x]){
top[son[x]]=top[x]; dfs2(son[x]); } for(int i=ls[x];i;i=a[i].next){
int y=a[i].to; if(y==fa[x]||y==son[x]) continue; top[y]=y;dfs2(y); }}int LCA(int x,int y){
while(top[x]!=top[y]){
if(dep[top[x]]

转载地址:http://tuwaf.baihongyu.com/

你可能感兴趣的文章
JS 获取图片、文件数据并封装在json中
查看>>
“秀才造反,十年不成”是什么意思? - 已解决 - 搜搜问问
查看>>
Zookeeper安装使用及JavaAPI使用
查看>>
python写的本地搜索小工具
查看>>
編譯android原始碼到模擬器上執行
查看>>
防止页面后退(使浏览器后退按钮失效)
查看>>
漫说单例模式--宝宝成长记 你真的了解了吗?
查看>>
Java 序列化和反序列化
查看>>
新人讨论一:事务和两阶段提交
查看>>
HTTP高并发测试
查看>>
群晖如何实现不在同一网段的访问
查看>>
Pytorch框架学习(10)——损失函数
查看>>
pytorch框架学习(17)——模型的保存与加载
查看>>
【解决问题】OpenCV(3.4.1) Error: Parsing error (xx.yaml(13): Incorrect indentation) in icvYMLParseValue
查看>>
Qt之QLineEdit详解(附源码)
查看>>
Google Protocol Buffer 的使用和原理
查看>>
为什么要使用工厂模式
查看>>
apache 开启Rewrite
查看>>
poj1256 dfs(全排列)
查看>>
poj1028 模拟
查看>>