LCA模板
2016-03-03 18:21
267 查看
[code]int lca(int x,int y){ int j; if (d[x]<d[y]) swap(x,y); if (d[x]!=d[y]){ j=floor(log(d[x]-d[y])/log(2)); while (j>=0){ if (d[f[x][j]]>d[y]) x=f[x][j]; j--; } x=f[x][0]; } if (x==y) return x; j=floor(log(d[x])/log(2)); while (j>=0){ if (f[x][j]!=f[y][j]){ x=f[x][j]; y=f[y][j]; } j--; } return f[x][0]; }
相关文章推荐
- 函数、指针、数组
- Spring源码入门——XmlBeanDefinitionReader解析
- phoenix使用vue--单独js(不使用app.js)
- 安装protocolbuffer详解
- GB2312与UTF8互相转换
- SQL优化
- 打包文件 MANIFEST.MF 功能详解
- git使用记录
- Ubuntu 14.04下Openface的环境搭建
- error while loading shared libraries:libcilkrt.so.5
- 01我为什么学Unity3d
- 多个Ativity值传递FLAG_ACTIVITY_FORWARD_RESULT
- Android 6.0 运行时权限处理完全解析
- 如何在Androdi Studio中获取SHA1数字签名和MD5
- VLAN技术介绍
- 人脸数据库汇总
- 北大计算所词性标注集简表
- Java集合之LinkedList
- HDU 2803 The MAX [Ad Hoc]
- MAKEFILE 学习笔记 —— 实用功能