LCA:倍增

memset(p,-,sizeof(p));

inline void dfs(int u)
{
for (int i=head[u];i!=-;i=e[i].next)
{
int v=e[i].v;
if (deep[v]==)
{
deep[v]=deep[u]+;
p[v][]=u;
dfs(v);
}
}
} void init()
{
for (int j=;(<<j)<=n;j++)
for (int i=;i<=n;i++)
if (p[i][j-]!=-)
p[i][j]=p[p[i][j-]][j-];
}
//deep[1]的初始为1
int lca(int a,int b)
{
int i,j;
if (deep[a]<deep[b]) swap(a,b);
for (i=;(<<i)<=deep[a];i++);
i--; for (j=i;j>=;j--)
if (deep[a]-(<<j)>=deep[b])
a=p[a][j];
if (a==b) return a; for (j=i;j>=;j--)
{
if (p[a][j]!=-&&p[a][j]!=p[b][j])
{
a=p[a][j];
b=p[b][j];
}
}
return p[a][];
}

最新文章

  1. Atitit 动态调用webservice与客户端代理方式调用
  2. Odoo 9 PDF不显示中文字体
  3. 使用EntityFramework6完成增删查改和事务
  4. HDU 3544 (不平等博弈) Alice&#39;s Game
  5. HDU 1240 (简单三维广搜) Asteroids!
  6. Oracle 经典语法(五)
  7. poj 1659 Frogs&#39; Neighborhood (贪心 + 判断度数序列是否可图)
  8. java中函数是值传递还是引用传递?
  9. CF #284 div1 D. Traffic Jams in the Land 线段树
  10. 在什么情况下使用@ResponseBody 注解?
  11. webrtc初探之一对一的连接过程(一)
  12. 「雅礼集训 2017 Day5」矩阵
  13. thunderbird 163 smtp
  14. jQuery validdate插件的使用
  15. 同时使用n和nvm踩到的坑
  16. 单节点etcd配置
  17. HTML:Registry design.(Include a simple web design use HTML)
  18. xcode资源管理
  19. crontab入门
  20. ASPxComboBox 自带输入法确定之后再搜索解决方法

热门文章

  1. Shell脚本中时间处理
  2. jdk环境变量配置(参考自《疯狂java讲义》)
  3. Django REST framework 的功能
  4. linux各种终端类型的区别和概念
  5. laravel使用总结(二)
  6. pycharm添加wordcloud模块时报错:error: Microsoft Visual C++ 14.0 is required. Get it with &quot;Microsoft Visual C++ Build Tools&quot;: http://landinghub.visualstudio.com/visual-cpp-build-tools
  7. shell-note-1-基础篇
  8. Ubuntu 14.04在虚拟机上的桥接模式下设置静态IP
  9. mysql参数讲解
  10. Tomcat下部署PHP