当前位置: 首页 > news >正文

LCA rmq st model

LCA:倍增

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

inline void dfs(int u)
{
  for (int i=head[u];i!=-1;i=e[i].next)
  {
     int v=e[i].v;
     if (deep[v]==0)
     {
       deep[v]=deep[u]+1;
       p[v][0]=u;
       dfs(v);
     }
  }
}


void init()
{
   for (int j=1;(1<<j)<=n;j++)
   for (int i=1;i<=n;i++)
   if (p[i][j-1]!=-1)
   p[i][j]=p[p[i][j-1]][j-1];
}
//deep[1]的初始为1
int lca(int a,int b)
{
   int i,j;
   if (deep[a]<deep[b]) swap(a,b);
   for (i=0;(1<<i)<=deep[a];i++);
   i--;

   for (j=i;j>=0;j--)
   if (deep[a]-(1<<j)>=deep[b])
   a=p[a][j];
   if (a==b) return a;


   for (j=i;j>=0;j--)
   {
     if (p[a][j]!=-1&&p[a][j]!=p[b][j])
     {
       a=p[a][j];
       b=p[b][j];
     }
   }
   return p[a][0];
}

 

转载于:https://www.cnblogs.com/forgot93/p/4736714.html

相关文章:

  • 一个有意思的Ruby脚本
  • 如何提醒客户重载父类的指定方法?
  • 将键盘的按键转换成相应的Unicode 值
  • sqlserver 锁表语句分享
  • 产品版本改造中的项目管理
  • 一种人吃蜂蜜火上浇油
  • windows 特殊文件后缀集合
  • 异或+构造 HDOJ 5416 CRB and Tree
  • 使用loader加载swf
  • WIN7 嵌入式系统安装教程 Windows Embedded Standard 2011 安装
  • [CakePHP] 在Controller中使用Helper
  • SVG图像技术摘要
  • [Loadrunner参数化]一个文件输两列参数的取值
  • Oracle Open World、JavaOne、Oracle Developer 第一日
  • Java-正则表达式的学习
  • 【译】理解JavaScript:new 关键字
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • bearychat的java client
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • download使用浅析
  • java2019面试题北京
  • Java编程基础24——递归练习
  • PAT A1092
  • Puppeteer:浏览器控制器
  • Service Worker
  • windows下mongoDB的环境配置
  • 动态规划入门(以爬楼梯为例)
  • 聊聊hikari连接池的leakDetectionThreshold
  • 如何优雅地使用 Sublime Text
  • 双管齐下,VMware的容器新战略
  • 小程序开发之路(一)
  • 硬币翻转问题,区间操作
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • PostgreSQL之连接数修改
  • # C++之functional库用法整理
  • %check_box% in rails :coditions={:has_many , :through}
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (规划)24届春招和25届暑假实习路线准备规划
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (三)模仿学习-Action数据的模仿
  • (转) Face-Resources
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)Sublime Text3配置Lua运行环境
  • (转载)(官方)UE4--图像编程----着色器开发
  • ***监测系统的构建(chkrootkit )
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • @font-face 用字体画图标
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [16/N]论得趣
  • [20150904]exp slow.txt
  • [Android]使用Android打包Unity工程