lca 离线模板
来源:互联网 发布:软件开发报价模板 编辑:程序博客网 时间:2024/06/06 07:08
struct node{int v,w;node(){}node(int vv,int ww){v=vv;w=ww;}};struct edge{int u,v,lca;edge(){}edge(int uu,int vv,int ll){u=uu,v=vv,lca=ll;}};vector<edge>G;vector<node>v[50000];vector<int>g[50000];int father[50000],rank1[50000];void addedge(int a,int b){G.push_back(edge(a,b,-1));G.push_back(edge(b,a,-1));int m=G.size();g[a].push_back(m-2);g[b].push_back(m-1);}int dir[50000];void init(int n){for(int i=0;i<=n;i++){father[i]=i;rank1[i]=0;}memset(dir,0,sizeof(dir));}int find(int a){if(a==father[a])return a;return father[a]=find(father[a]);}void unite(int x,int y){ x=find(x); y=find(y); if(x!=y) father[y]=x;}int vis[50000];void tarjan(int x){ vis[x]=1;for(int i=0;i<v[x].size();i++){int y=v[x][i].v;if(vis[y])continue;dir[y]=dir[x]+v[x][i].w;tarjan(y);unite(x,y);}for(int i=0;i<g[x].size();i++){edge & y=G[g[x][i]];if(vis[y.v]){G[g[x][i]].lca=G[g[x][i]^1].lca=find(y.v);}}}ans=dir[u]+dir[v]-2*dir[lca];
阅读全文
0 0
- 离线求lca模板
- lca 离线模板
- lca 离线tarjan模板
- LCA离线+在线+hdu2586(模板)
- LCA离线tarjan算法模板
- 经典离线求lca[模板]
- tajan离线求LCA 模板
- LCA离线tarjan算法模板
- lca离线算法模板(poj1330验证)
- poj 1330lca模板题离线算法
- 图论之离线lca模板
- LCA模板题(在线加离线)
- LCA离线模板(Tarjan)倍增模板 hdu2586
- HDU 2586 How far away ? (离线LCA Tarjan算法模板)
- LCA最近公共祖先 在线算法和离线算法 模板
- 【LCA】Tarjan离线算法(并查集+dfs)模板
- hdu 2874 lca-tarjan离线算法(模板)
- LCA 离线算法 tarjan 总结 与模板题
- java项目中页面上的图片无法显示
- 软件工程导论第二章作业2.2
- Find Median from Data Stream
- 预习《高质量嵌入式LinuxC编程》第二章有感
- C++“类”小练习
- lca 离线模板
- CXF之六(对请求参数和返回给客户数据处理)
- golang fmt.Stringer 接口的使用
- VS2013导入opencv320配置属性文件
- Constructing Roads In JGShining's Kingdom(二分法维护单调上升序列)
- 操作系统:进程同步(1)进程同步概念
- 类的抽象性知识点和示例
- POJ2993 Emag eht htiw Em Pleh
- php使用qq第三方登陆(oauth协议)