首页 > 其他分享 >【笔记】2023.12.14 树上问题

【笔记】2023.12.14 树上问题

时间:2023-12-14 12:22:06浏览次数:30  
标签:14 dep 2023.12 分治 笔记 leq ij 树上 log

笔记 2023.12.14:树上问题

[Ynoi2004] rpmtdq

支配对:\(i_1\leq i_2\leq j_2\leq j_1, dist(i_1, j_1)\geq dist(i_2, j_2)\) 时,称 \((i_1, j_1)\) 被 \((i_2, j_2)\) 支配,前者就无用了,选到区间只要包含 \((i_1, j_1)\) 就一定包含 \((i_2, j_2)\)。

点分治到 \(rt\) 时,记 \(d_x=dist(x, rt)\),则支配对 \((i, j)\) 必须满足:

  • \(i<j\land d_i\leq d_j\),取 \(i\) 最大的。
  • \(i>j\land d_i\leq d_j\),取 \(i\) 最小的。

如果存在一个 \(k<i<j,d_k\leq d_j, d_i\leq d_j\),你冷静一下发现 \((k, j)\) 被 \((k, i)\) 支配了,\(j\) 不用管它。

单调栈随便做做,搞出 \(O(n\log n)\) 个点对,最后 cdq 二位数点总是能做的。\(O(n\log ^2 n + q \log n)\)。

CF1019E Raining season

边分治完了以后把 \((\sum a_i, \sum b_i)\) 看作点,两边建凸包,合并凸包(疑似是 Minkowski 和),更新答案,疑似 \(O(n\log ^2n)\),不知道外面有没有一棵大凸包要合并。

[NEERC2015] Distance on Triangulation

将 \(n-3\) 条对角线拿出来分治(使得分成的两个多边形点数尽量相等),对于分治的边,从分治的边开始 bfs,获取所有跨过这条边的询问的答案。向下递归时,将多边形劈成两个多边形。类似于一个神秘的猫树分治。

二分答案完了以后点分树一眼 \(O(n\log ^ 3n)\)。

CF757G Can Bash Save the Day?

因为你已经会了如何用点分树查询全局答案,所以用主席树维护前缀的答案。swap 操作只改一棵主席树。\(O(n\log^2 n)\)。

或者将 \(1\to p_i\) +1,查询 \(1\to x\) 的和也可以求那玩意。\(O(n\log^2 n)\)。

据说有 1log 高论。

[CTSC2018] 暴力写挂

边分治分成两个点集 \(A, B\),不妨 \(A\) 靠近根,那么 \(A\) 中点 \(x\) 和任意 \(y\in B\) 的 LCA 确定。于是 \(dep_x-dep_{lca(x, y)}\) 确定。

考虑 \(dep'_y-dep'_{lca'(x, y)}\)。对涉及的点在 \(T'\) 上建虚树。将 \(dep_y\) 看作黑盒,在 \(T'\) 的虚树上,第一次 dp 将答案放在 LCA 上,第二次 dp 将 LCA 的信息放回 \(x\),都是轻易的。

于是 \(O(n\log n)\)。注意建虚树可以需要归并一下。

[WC2018] 通道

边分治第一棵树,在第二棵树上建虚树,枚举第二棵树上的 LCA \(k\),现在的答案形如:

\[d_1[x]+d_1[y]+w_{edge}+dep_2[x]+dep_2[y]-2dep_2[k]+dist_3(x, y) \]

要求 \(x, y\) 在边分治上不同集合,\(LCA(x, y)=k\)。

将 \(x, y, 1\) 分别独立一下,变成什么 \(dist_3(x, y)+val_x+val_y+C\),观察到这其实是一个直径的形式,你总可以将 \(val_x, val_y\) 挂在第三棵树的这些点上,所以这就是直径。

在第二棵树的子树上合并第三棵树的直径端点。

*[JOISC2020] 首都城市

对颜色 \(i\) 建虚树,虚树边上的其他颜色 \(j\),连边 \(i\to j\)。

欲将选到 \(i\),首先需要改所有 \(j\) 为 \(i\),改完以后原来 \(j\) 的点也需要形成连通块,除非是被 \(i\) 隔开就不用管。

所以是最小的强连通分量。后面怎么做都行。怎么做啊?

sub

这个 ddp 太平凡了。

*LOJ6289 花朵

分治 ntt,其实不会很会具体做法。

ICPC2017 西安 D Islands

别学分治 ntt 了

[POI2014] HOT-Hotel

skipped

Another Boring Problem

树上莫队,求出树的 dfs 时的括号序列,在到达点、退出点时将其加入到序列。设每个点有两个出现位置 \(s_x ,t_x\),则查询区间相当于 \([t_x ,s_y ]\) 加上可能存在的 LCA 的贡献(不是祖先就要加)。注意这里不是严格的括号序,反正就是遇到就把状态取反。最后的 kth 怎么分块都行。

*2021 集训队互测 Lovely Dogs

待补一下,反正后面是 dsu on tree 套路,前面数学很好玩。

CF888G 最小异或生成树

他是在 Trie 树上考虑的,考虑 boruvka 的时候你是从 \(1, 2, 4, 8, 16, \cdots\) 的 highbit 一位一位考虑的,所以你直接在 Trie 树上,你声称 Trie 树上一棵子树是 boruvka 过程中的一个连通块,在点 \(p\) 合并它的左右子树的连通块。启发式查询一下就能保证复杂度为 \(O(n\log ^ 2n)\)。

Rectangle

扫描线直接扫 \(O(\log n)\) 次就行。

*CF632F Magic Matrix

令 \(b_{ij}=\min_k\max(a_{ik}, a_{jk})\leq a_{ij}\)(取 \(k=i\)),那么有 \(a_{ij}\leq b_{ij}\leq a_{ij}\implies b_{ij}=a_{ij}\)。

然后不知道为什么它就是 \(i, j\) 的所有路径的边权最大值的最小值。

然后跑 Kruskal 暴力判定一下。

*LOJ574 黄金矿工

将这个诈骗的边权和去掉。考虑无修改,是模拟费用流,

*JOISC 2020 Day3 收获

这个人收完苹果之后,下一个是谁收苹果是固定的,建内向基环树,以后的事情就是一坨了。

标签:14,dep,2023.12,分治,笔记,leq,ij,树上,log
From: https://www.cnblogs.com/caijianhong/p/17900938.html

相关文章

  • 12.14周四每日总结
    今天上课更加深入讲解了类图和时序图,并通过测试和让学生讲解让我们更加深入这些内容。其中面向对象建模过程识别信息系统的目标和边界(上下范围图);识别用例,建立用例图;识别对象和类,建立类图;设计用例的详细逻辑,建立时序图或协作图;必要时重复以上活动,精化并调整各图。让我们更......
  • 12.14周四课堂测试
    软件需求与分析课堂测试十——综合案例分析(5分) 班级:信2105-2班    学号:20214112    姓名:李佳岳根据下列案例需求描述,回答相关问题:有一个对外营业的会议中心,有各种不同规格的会议室,为用户提供以下服务:1、用户可以按照会议人数、会议时间预订会议室。可以只预订1次,也......
  • Codeforces Round 814 (Div. 2)
    基本情况又是过了ABC。A、B思路更多的是从数据上分析出来的,过的很顺。C经典拿评测机来调试,甚至还RE了一次,最后终于过了。C.FightingTournamentProblem-C-Codeforces第一次改错这题我的思路是找到规律后,优先队列加二分查找。但是一直WA第二个点,这是我一开始的代码:......
  • 世微AP5414 锂电池升降压 恒流恒压 LED电源驱动IC
    产品简介 AP5414是一种输入电压范围宽(0.8~5.5V),可调恒定电流和限定电流两种模式来驱动白光LED而设计的升压型DC/DC变换器。该器件能利用单节或双节干电池驱动单颗大功率白光LED,同样可以利用一节锂电池驱动两颗、三颗或多颗WLED。驱动WLED串联连接的方法可以提供相等的......
  • 世微AP5414 锂电池升降压 恒流恒压 LED电源驱动IC
    产品简介 AP5414是一种输入电压范围宽(0.8~5.5V),可调恒定电流和限定电流两种模式来驱动白光LED而设计的升压型DC/DC变换器。该器件能利用单节或双节干电池驱动单颗大功率白光LED,同样可以利用一节锂电池驱动两颗、三颗或多颗WLED。驱动WLED串联连接的方法可以提供相等的W......
  • 阅读笔记《探索需求》
    这是本学期最后一本书了,《探索需求》。第一章讲的是方法论是不够的,主要围绕了三个问题:第一是为什么,因为我们使用的通常都是需求映射图,而不是需求本身,这就是需求要“探索”的原因。人们探索制作映射图,最终得到一张足够接近于实际形态的映射图,并为了一个“现实的”目的把它表达出来......
  • 第1-14届河南省大学生程序设计竞赛(ICPC-ACM河南省赛)
    河南省大学生程序设计竞赛又称为河南省内的ACM,是河南省内大学生程序设计的盛宴  2021年5月22日至23日,河南省第十三届大学生程序设计竞赛在  河南农业大学举行,2022年 4月16日,中原工学院我院2022年(第14届)ACM程序设计竞赛决赛在学院基础实验楼举行。5月20日至21日,2023年......
  • 12.14——python类
    classEmployee:  up=0.1    def__init__(self,name,salary):    #构造器__init__    self.username=name#实例变量    self.salary=salary1          defup_salary(self):#self表示......
  • 深度学习笔记4:在卷积基上添加数据增强代码块和分类器
    特征提取的另一种方式是将原有模型与一个新的密集分类器相连接,以构建一个新的模型,然后对整个模型进行端到端的训练。这种方法在输入数据上进行整体训练,使模型能够更好地适应数据特性并提取更有效的特征。通过这种方式,模型的性能可以得到进一步提高,同时也能更好地捕捉到数据中......
  • 【学习笔记】transformer 简札
    高铁心血来潮逼着自己把这个模型的结构看了一遍,不写下来会忘掉的Encoder输入是词向量。wordvector->[(multihead)self-attention->forward]×n->layernormalizationselfattention就是qkv矩阵乘法得到z,multiheadselfattention就是进行多个矩阵乘法然后把\(z_......