博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LCA
阅读量:3950 次
发布时间:2019-05-24

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

BB

众所周知,LCA有N种方法。一种种慢慢学。。。

方法

1. 倍增求法

2. 待续…

Problem List

//POJ 1986 lca模板#include
using namespace std;const int maxn=4e4+5;struct Edge{
int to; int len;};vector
G[maxn];int fa[maxn][21],dep[maxn],dist[maxn];void dfs(int u){
for(int i=1;(1<
<=dep[u];i++) fa[u][i]=fa[fa[u][i-1]][i-1];//倍增DP for(int i=0;i
dep[y])swap(x,y); int f=dep[y]-dep[x]; for(int i=0;(1<
<=f;i++)//二进制的思想,总能到达同dep if((1<
=0;i--)//二进制思想,由大到小的减,总能到达1 if(fa[x][i]!=fa[y][i]) { x=fa[x][i]; y=fa[y][i]; } return fa[x][0];}int main(){ int n,m; scanf("%d%d",&n,&m); int x,y,l; char c; for(int i=0;i

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

你可能感兴趣的文章
idea编译报错类似xxx.java:[85,65] 错误: 找不到符号
查看>>
ArrayList复制
查看>>
idea打开项目时,文件左下角显示橙色J
查看>>
SQL注入
查看>>
linux中ldconfig的使用介绍
查看>>
ldap适合入门学习
查看>>
ldap学习参考博客
查看>>
linux学习之source命令与alias(别名)使用
查看>>
MYSQL常用查询
查看>>
安装Linux虚拟机绑定IP操作
查看>>
centos7离线安装 mysql
查看>>
mysql学习使用一(查询)
查看>>
Linux 学习之sed命令详解
查看>>
JAVA基础——常用IO使用
查看>>
spring框架pom.xml文件解析
查看>>
代码比较工具DiffMerge的下载和使用
查看>>
linux学习之vim全选,全部复制,全部删除
查看>>
linux 学习之awk命令
查看>>
linux学习之查找文件find,locate,whereis使用
查看>>
JS中$含义及用法
查看>>