![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LCA
卧室踩被
The weakest OIer
展开
-
LCA模板(Multiplication of trees)
题目: 模板题不用概括大意了吧 给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。 解题思路: 树上倍增 fa[i,j]表示第i个点的2jj^j级别的祖先 depth[x]表示x的深度 我们预先算出log_2(i)+1的值,这样每次调用就是O(1),如果用C语言的log会比较慢,自己推可以达到常数优化的效果 lg[i]=log_2(i)+1=lg[i-1]+(1< ...原创 2018-08-14 11:08:16 · 151 阅读 · 0 评论 -
JZOJ 5786 观察
题目大意: 给出一颗以1为根的树,一开始每个节点都是一颗棋子,一面白一面黑,白色的面朝上 接下来就q次操作,操作分两种 0操作 将一个颗棋子翻转 1操作 询问一颗棋子与所有面朝上为黑色的棋子lca最深的那个的编号 解题思路: LCA(最近公共祖先) + DFS序 不早了先不发详细题解 开氧气才能过,能优化的都优化了,还是T,75分,开了就A了 看: Accepted code: #pragma ...原创 2018-09-23 23:05:47 · 307 阅读 · 0 评论 -
SSL Week 2 Fri. JZOJ模拟赛B组 T1 祖孙询问
题目大意: 已知一棵n个节点的有根树。有m个询问。每个询问给出了一对节点的编号x和y,询问x与y的祖孙关系。 解题思路: DFSDFSDFS序 or LCAor\ LCAor LCA DFSDFSDFS序,记录第一次访问此节点的时间st[x]st[x]st[x],访问完的时间ed[x]ed[x]ed[x] 如果yyy在xxx的子树内,那么必定有st[x]<st[y...原创 2019-03-21 16:30:25 · 131 阅读 · 0 评论