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 · 138 阅读 · 0 评论 -
JZOJ 5786 观察
题目大意:给出一颗以1为根的树,一开始每个节点都是一颗棋子,一面白一面黑,白色的面朝上接下来就q次操作,操作分两种0操作 将一个颗棋子翻转1操作 询问一颗棋子与所有面朝上为黑色的棋子lca最深的那个的编号解题思路:LCA(最近公共祖先) + DFS序不早了先不发详细题解开氧气才能过,能优化的都优化了,还是T,75分,开了就A了看:Accepted code:#pragma ...原创 2018-09-23 23:05:47 · 284 阅读 · 0 评论 -
SSL Week 2 Fri. JZOJ模拟赛B组 T1 祖孙询问
题目大意:已知一棵n个节点的有根树。有m个询问。每个询问给出了一对节点的编号x和y,询问x与y的祖孙关系。解题思路:DFSDFSDFS序 or LCAor\ LCAor LCADFSDFSDFS序,记录第一次访问此节点的时间st[x]st[x]st[x],访问完的时间ed[x]ed[x]ed[x]如果yyy在xxx的子树内,那么必定有st[x]<st[y...原创 2019-03-21 16:30:25 · 122 阅读 · 0 评论