分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

BZOJ 3732 Network

发布时间:2023-09-06 01:43责任编辑:胡小海关键词:暂无标签

题解:求最大生成树,则边一定在最大生成树上,证明用Kluscal

然后就是倍增

TMD我竟然建树写错了,MDMDMDMDMDMD

为什么一开始没想到QWQ

总结:不要往难处想

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=30009;int n,m,T;struct Edge{int u,v,d;}edges[maxn];bool cmp(const Edge &rhs1,const Edge &rhs2){return rhs1.d<rhs2.d;}int father[maxn];int Getf(int x){if(father[x]==x)return x;return father[x]=Getf(father[x]);}void Unionn(int x,int y){int fx=Getf(x);int fy=Getf(y);if(fx!=fy)father[fx]=fy;}int cntedge;int head[maxn];int to[maxn<<1],nex[maxn<<1],dist[maxn];void Addedge(int x,int y,int z){nex[++cntedge]=head[x];to[cntedge]=y;dist[cntedge]=z;head[x]=cntedge;}int f[maxn][20],g[maxn][20],dep[maxn];void Dfs(int now,int fa){dep[now]=dep[fa]+1;for(int i=head[now];i;i=nex[i]){if(to[i]==fa)continue;f[to[i]][0]=now;g[to[i]][0]=dist[i];Dfs(to[i],now);}}void LCAinit(){for(int j=1;j<=19;++j){for(int i=1;i<=n;++i){f[i][j]=f[f[i][j-1]][j-1];g[i][j]=max(g[i][j-1],g[f[i][j-1]][j-1]);}}}int GetMaxd(int u,int v){int ret=0;if(dep[u]<dep[v])swap(u,v);for(int j=19;j>=0;--j){if(dep[f[u][j]]>=dep[v]){ret=max(ret,g[u][j]);u=f[u][j];}}if(u==v)return ret;for(int j=19;j>=0;--j){if(f[u][j]!=f[v][j]){ret=max(ret,max(g[u][j],g[v][j]));u=f[u][j];v=f[v][j];}}return max(ret,max(g[u][0],g[v][0]));}int main(){scanf("%d%d%d",&n,&m,&T);for(int i=1;i<=m;++i)scanf("%d%d%d",&edges[i].u,&edges[i].v,&edges[i].d);sort(edges+1,edges+1+m,cmp);for(int i=1;i<=n;++i)father[i]=i;for(int i=1;i<=m;++i){int u=edges[i].u;int v=edges[i].v;int d=edges[i].d;if(Getf(u)==Getf(v))continue;Unionn(u,v);Addedge(u,v,d);Addedge(v,u,d);}Dfs(1,0);LCAinit();////for(int i=1;i<=n;++i){//printf("%d %d\n",f[i][0],g[i][0]);//}while(T--){int x,y;scanf("%d%d",&x,&y);printf("%d\n",GetMaxd(x,y));}return 0;}

  

BZOJ 3732 Network

原文地址:https://www.cnblogs.com/zzyer/p/8475976.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved