随笔分类 -  树论——直径

摘要:XVII.CF1413F Roads and Ramen 首先,注意到本题等价于求路径上所有边权的异或和为0的路径长度的最大值。 然后,我们要猜/证明出一个结论,即任意一条极长合法路径,其必有一个端点是直径端点。 证明: 我们设有一条直径(S,T)。我们再设coli表示从i节点到根 阅读全文
posted @ 2021-04-02 16:36 Troverld 阅读(51) 评论(0) 推荐(0) 编辑
摘要:XV.[USACO18FEB]New Barns P 这种东西应该怎么维护呢?这是子树最大值呀。 一种方法是用平衡树(例如 std::multiset )维护轻儿子长度集合。但是这种东西太麻烦,太恶心了。 考虑直径的性质。我们给出两条引理: 引理1:假如有一条直径(p,q),那么树中任意一个点$ 阅读全文
posted @ 2021-03-31 16:17 Troverld 阅读(342) 评论(0) 推荐(0) 编辑
摘要:CX.[POI2015]MOD 比较恶心的题目。 首先,有一个结论,即如果把两棵树通过某种方式连接起来,新树的直径的端点一定来自于原本两棵树的直径端点集合。 则考虑新树的最大直径,明显就是把两棵树的直径直接连一块,就是两棵树的直径之和再加一。 考虑新树的最小直径,则应该选择两树直径的中点(如果直径长 阅读全文
posted @ 2021-03-31 14:23 Troverld 阅读(42) 评论(0) 推荐(0) 编辑
摘要:LXXXIV.CF51F Caterpillar 也不知道算不算DP,反正就放这吧。 首先我们很轻松就能想到关于“环”,或者进一步地说,“边双连通分量”。因为最终图中不能有环,所以每个边双肯定最终会被缩成一个点。那么我们就也来缩一下。 在缩点之后,我们便得到了一片森林。 很明显对于每一棵树,我们都应 阅读全文
posted @ 2021-03-30 19:48 Troverld 阅读(41) 评论(0) 推荐(0) 编辑
摘要:LVI.CF633F The Chocolate Spree 奇奇怪怪的直径题 思路1.用多种东西拼出来直径 我们设f[i][0/1/2/3]表示: 0:子树内一条路径的最大值 1:子树内两条路径的最大值 2:子树内一条路径,且起点为x的最大值 3:子树内两条 阅读全文
posted @ 2021-03-30 16:27 Troverld 阅读(76) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示