随笔分类 - 树论
摘要:I.IV.[NOI2020]命运 半年前水了份 \(n^2\) 暴力,没想到过了出题人用脚造的数据。这里是正解。 考虑DP。因为若两条路径呈包含关系,则更长的那条显然没用,于是设 \(f_{i,j}\) 表示所有下端在 \(i\) 子树内且未被满足的路径中,上端最深的那条的深度。明显,要且仅要满足这
阅读全文
摘要:I.II.[ZJOI2019]语言 一开始看错题,以为同一种语言会被普及多次,然后就成了神题不会做。一看题解,发现自己看错题了,原来是垃圾题。 一个点所能到达的点,只有与它在同一条路径上出现过的点,换句话说就是经过它全部路径的并。 全部路径的并很好搞,就是全部路径端点建出虚树的大小。虚树大小也很好搞
阅读全文
摘要:III.[WC2013] 糖果公园 树上莫队。 树上莫队是依照于一种特殊的序列:括号序列而进行的莫队。括号序列,具体而言,是 dfs 树的时候,到一个点就插入序列,离开一个点的时候再插入一次。这样,所有在树上 \(x\sim y\) 路径上出现的点,在括号序列上就是自 \(x\) 第一次出现的位置到
阅读全文
摘要:XLVI.CF1408G Clusterization Counting 很明显,将边按照权值从小到大排序后,依次用冰茶姬合并,如果任意时刻出现了团,则这个团显然是唯一合法的可能。人脑思考可得这个团之间的关系肯定是个划分树关系(即一个大团裂成许多小团的树形关系),因此总合法团数是 \(O(n)\)
阅读全文
摘要:XLIV.CF607D Power Tree 考虑计算 \(x\) 子树中某个节点 \(y\) 对于 \(f(x)\) 的贡献,发现是 \(w_y\times\prod\limits_{z\in\text{path}(y,x)}deg_z\),其中 \(deg_z\) 是 \(z\) 节点的儿子数。
阅读全文
摘要:XXXVII.[十二省联考2019]春节十二响 考虑一个simple的情形:假如一个点有两条链作为儿子,应该怎么样才好? 明显,同一条链上的点不能在一起,于是链上的一个点只能与另一条链上的点匹配。明显匹配应该从大往小配(两个大的配了,这样最终便少了一个较大的)。于是我们用两个堆记录两条链,每次匹配堆
阅读全文
摘要:XXXII.CF1491H Yuezheng Ling and Dynamic Tree 首先,相信大家都做过[HNOI2010]弹飞绵羊这道经典原题,而这题显然是那题的增强版。 众所周知,该原题有两种常见解法:LCT或分块。凭直觉发现LCT不可能处理这种区间修改问题,于是我们考虑分块。 分块的话,
阅读全文
摘要:XXVIII.[UOJ#576][ULR#1]服务器调度 非常可怕的大数据结构题,原版代码整整码了9K,就算稍微合并合并也剩下7K…… 首先,我们考虑对每种颜色,建出一棵虚树。考虑求出虚树的一条直径。则有个结论是原树上到任意一点最远的点肯定是此直径的端点之一。 例如,我们考虑下方的这棵树: O /
阅读全文
摘要:XVII.CF1413F Roads and Ramen 首先,注意到本题等价于求路径上所有边权的异或和为$0$的路径长度的最大值。 然后,我们要猜/证明出一个结论,即任意一条极长合法路径,其必有一个端点是直径端点。 证明: 我们设有一条直径$(S,T)$。我们再设$col_i$表示从$i$节点到根
阅读全文
摘要:XIII.CF226E Noble Knight's Path 这题分为在线和离线两种做法然而我只会在线 在线的思路很简单,即先树剖,然后建出主席树。主席树一维维护的是时间,每一棵主席树内部维护的是树剖剖出来的结果。 然后对于每一次询问: 首先先从两边跳链,找到LCA,并找出两点路径间没有被“亵渎”
阅读全文
摘要:XVIII.[PA2017]Banany 心血来潮想开道动态点分治的题练手,然后被折磨了一下午…… 首先,套上点分树是没问题的。那么,怎样维护修改呢? 单点修改无论用什么结构维护都是非常easy的;但是边的修改就不太简单了,因为它涉及到不止一条路径。 我们设当前修改了边 \((x,y)\)。对于点分
阅读全文
摘要:XVII.CF434E Furukawa Nagisa's Tree 我们观察所有合法对,发现其在枚举一个点、找到关于该点符合条件的另两点时,并不能唯一判定该三元环一定合法,因为另两点间的边不一定符合条件。但是,观察不合法的对,就会发现其中有且仅有两个点,其连接了一条好路径与一条坏路径(好路径即满足
阅读全文
摘要:XVI.CF715C Digit Tree 好久没写淀粉质了,省选前就来一题练练手罢。 路径上的数就拆成两半分别取模,最后用一个 map 储存并合并即可。因为本题维护的信息(对数)具有可减性,因此可以采取求出整棵树的值后,减去每棵子树的值的做法。 本题的 unordered_map 被卡了,必须用
阅读全文
摘要:XV.[Codeforces GYM 101002K] YATP (没有单独的页面,就放个到大页面的连接罢) 我们考虑先套一个点分治。点分治后,考虑计算所有LCA为根节点的对中,最优的那些对。 我们考虑就算某两个点它们位于同一棵子树内也不要紧——这里它的权值被表示成 \(dep_i+dep_j+a_
阅读全文
摘要:XIV.[URAL2085]Magic Programmer 如何处理路径上所有东西出现且只出现一次的限制呢?我们考虑哈希。只需要用一个哈希表处理所有出现过的东西,然后求另一半东西时,找出它的补集的哈希值在哈希表中查询,即可做到路径拼接。 代码: #include<bits/stdc++.h> us
阅读全文
摘要:XIII.[USACO18JAN]Cow at Large P 这题我做的时候时限1s,然后卡不过去……之后不得不发帖请求把时限调大到题面中的4s 假设当前询问了点$rt$,那么我们把这棵树变成以$rt$为根,设$dep_i$为此刻$i$节点的深度。 我们再令$f_i$表示$i$节点距离最近的叶子的
阅读全文
摘要:XII.小清新数据结构题 太 清 新 了 话说就我一个人看到这道题后兴冲冲的以为暴力LCT就能过然后发现LCT如果维护子树信息的话只有根节点处的信息是正确的吗(没错,就我一个) 闲话少说,正片开始。 法一:推一种式子,然后LCT/树剖维护 我们设$val_i$为$i$节点的值,然后$sum_i$为根
阅读全文
摘要:XI.[USACO12NOV]Balanced Trees G 与上题类似,我们仍然需要分成$FR$路径和$TO$路径两部分考虑。默认将根归为$FR$路径中考虑。 首先是判断怎样搞才是合法的。关于这个,我们可以用一个pair<int,int>来记录全部匹配完后,剩余的)与(的数量,其中first表示
阅读全文
摘要:X.[COCI2019] Transport 常规淀粉质的题也可以出的非常毒瘤…… 依旧考虑淀粉质。因为这里的路径是有向路径,所以会在分治中心被截成两半,一半从节点到根,记作$FR$路径;而另一半从根到节点,记作$TO$路径。显然,一条$FR$路径只能与来自不同子树的一条$TO$路径拼接,并且这两条
阅读全文
摘要:IX.[BJOI2017]树的难题 debug三天,精神崩溃 论一行if(vis[v[x][r].second]){r++;continue;}忘记加上后所有代码全都莫名其妙TLE且查不出锅的痛苦 首先,我们考虑常规淀粉质。 我们考虑一条路径,它会被(淀粉质的分治根)截成两段。如果我们对于分治树中的
阅读全文

浙公网安备 33010602011771号