首页 > 其他分享 >CodeForces 825G Tree Queries

CodeForces 825G Tree Queries

时间:2023-08-26 15:44:44浏览次数:60  
标签:传送门 点权 Tree CodeForces 825G dfn LCA operatorname

洛谷传送门

CF 传送门

模拟赛赛时做法。

看到查询路径点权最小值,想到建重构树,满足重构树上 \(\operatorname{LCA}(x, y)\) 为原树上 \(x \to y\) 路径的点权最小值。建树方法可以参考 CF1797F Li Hua and Path

于是问题变成了,维护一个点集,支持加点,查询给定点 \(x\) 到点集中所有点的 \(\operatorname{LCA}\) 中最浅的那个。

有个结论是点集中只有 dfn 序最小和最大的点有用。因为子树的 dfn 序是连续的,我们想让 \(\operatorname{LCA}\) 尽量浅,就要让以 \(\operatorname{LCA}\) 为根的子树尽量大。

于是我们维护点集中 dfn 序最小和最大的点即可,这样点集的大小不超过 \(2\)。

时间复杂度 \(O((n + q) \log n)\)。

标签:传送门,点权,Tree,CodeForces,825G,dfn,LCA,operatorname
From: https://www.cnblogs.com/zltzlt-blog/p/17658875.html

相关文章

  • [CF1794E] Labeling the Tree with Distances 题解
    [CF1794E]LabelingtheTreewithDistances题解题目描述给你一个树,边权为\(1\)。给定\(n-1\)个数,你需要将这些数分配到\(n-1\)个节点上。一个点\(x\)是好的,当且仅当存在一种分配方案,所有被分配数的点到\(x\)的最短路径长度等于其被分配的数。求所有好点。思路从......
  • Codeforces Round 894 (Div. 3)
    CodeforcesRound894(Div.3)因为最近开学了,所以晚上可能就没有什么时间打这个了,不过以后一定会在第二天把题给补掉A题传送门A题意:就是在一个n*m的的字符矩阵中从左往右依次取出4列,使得每列包含vika这四个字符中按顺序出现一个。必须保证是按顺序出现。A思路:这是一个简......
  • P3521 [POI2011] ROT-Tree Rotations
    P3521[POI2011]ROT-TreeRotations首先合并两棵子树的时候只关心子树内值的个数,并不关心子树内具体是什么顺序,引导从下向上线段树合并计算代价。每一个值只会出现一次,首先每个叶子节点开一棵动态开点值域为\(1-n\)的线段树维护,初始只有自己的值的位置为\(1\)。然后对于每......
  • git_使用git worktree命令使不同分支的代码文件可以同步运行
    情景再现:我本地代码正在开发后台系统的过程中,前台开发的同事时不时地会来找我要IP地址,使用正在开发的后台管理系统来进行一些数据的增删改查.这个时候直接提供正在开发的版本的开发服务器地址是不行的,因为随着代码的编写时不时的报个bug是家常便饭,对于使用者来说非常......
  • Codeforces Round 894 (Div. 3) A-F题解
    A.GiftCarpet题意最近,特马和维卡庆祝了家庭日。他们的朋友Arina送给他们一块地毯,这块地毯可以用拉丁文小写字母的\(n\cdotm\)表来表示。维卡还没看过礼物,但特马知道她喜欢什么样的地毯。如果维卡能在地毯上读出自己的名字,她一定会喜欢的。她从左到右逐列阅读,并从当前列中......
  • el-tree 折叠节点时去掉 defaultExpandedKeys 中已折叠的节点及其子节点
    问题场景树形节点默认是全部折叠的。展开节点A,再把它折叠。然后给节点B新增子节点,新增成功后刷新树,却发现节点A是展开的。原因分析树刷新后全部节点都默认是折叠的,除非defaultExpandedKeys数组中有数据(这些节点数据是展开的)。因此,只需要在折叠节点A时,在defaultExpandedKeys......
  • 遍历Tree控件中的节点
    classSapGuiTree:classTreeType(enum.Enum):SIMPLE=0LIST=1COLUMN=2@classmethoddefshow(cls,tree,node,indention):print(indention,node,[tree.GetItemText(node,col......
  • CodeForces1741G-Kirill and Company题解
    \(\large\text{CodeForces1741G-KirillandCompany题解}\)题面传送门(有翻译(由黄巨佬提供))思路预处理因为\(k\)很小,所以可以先bfs预处理出家在\(i(2\lei\len)\)的人能捎带上哪些集合的人,在表示集合时用一个\(0\)到\(2^k-1\)的整数\(j\)表示,若\(j\)在二进质下的......
  • Codeforces Round #849 (Div. 4) 题解
    第一次打$\text{Div.4}$,感觉体验还行,差一题AK。##A直接使用if语句判断某个字符是否在字符串$\text{codeforces}$中出现过,幼儿园小朋友都会做。时间复杂度$\mathcal{O}(T)$,空间复杂度$\text{O}(1)$。ACCode##B用两个变量$x,y$记录当前走到哪里。若出现过$x=1,y=1$的......
  • Educational Codeforces Round 109 (Rated for Div. 2)
    B题没想到被坑了两次,极端情况明明也很好想,硬是WA了两发。C题很想之前做过的经典蚂蚁题,但是又不太一样,但分析之后,发现之后奇偶性相同才可能碰撞,那么分开处理,假如已经有相向而行,肯定是最快碰撞的,用一个栈维护即可,最后就是剩下的肯定是LLL...RRR将它们配对即可。#inclu......