首页 > 其他分享 >AT_hitachi2020_f Preserve Diameter

AT_hitachi2020_f Preserve Diameter

时间:2024-01-18 09:05:40浏览次数:30  
标签:Preserve Diameter le 子树内 标号 hitachi2020 直径 DP

哦哦牛皮

给定一棵树,你需要加入一些边,使得它成为一个简单无向图,要求:

  • 图的直径等于原树直径
  • 加入任何一条新边都会让图的直径变小。

求方案数对 \(998244353\) 取模。

\(1\le n \le 2\times 10^5\)

考虑找到新图的一对距离最远的点,将其它点按照到它们的距离标号并分层。由于第二条要求的存在,显然连边方式是所有同层或层数差 \(1\) 的点对全部连边。这也可以推出新图中距离最远的点只有唯一一对。那么我们直接去算标号方案数,要求是树上相邻的点标号差最多为 \(1\),且标号为 \(0\) 和直径长度 \(L\) 的点都唯一。那么我们得到了平方做法。

考虑直径中点,即树的中心。如果它是一个点,那么所有可能成为直径端点的点就是距离它为 \(\frac{L}{2}\) 的那些点,在这些点中选择两个所属子树不同的,从这两个点到中心的路径上点的标号当然是唯一的,其它点直接随意赋予标号,方案数为 \(3^{n-L-1}\)(考虑这个点和父亲的标号差是 \(-1/0/1\))。这样做的问题是可能有好多点被标上了 \(0\) 和 \(L\)。所以我们将这个做法和上一部分的 DP 结合起来,具体地,现在我们不再关心这个点到底标了什么,但是记录:1. 这个子树内是否有标号为 \(0/L\) 的点;2. 这个子树内是否存在一个点一路向上跳到子树根都是 \(-1/1\)。这样直接树上 DP 就是 \(\Theta(n)\) 的。

如果树的中心是两个点(即连接这两个点的边的中点),那么我们只要在一侧选出 \(0\),另一侧选出 \(L\),两侧互不影响,还是采用上面的 DP 即可。

标签:Preserve,Diameter,le,子树内,标号,hitachi2020,直径,DP
From: https://www.cnblogs.com/kyeecccccc/p/17971697

相关文章

  • CF1804F Approximate Diameter 题解
    题目链接点击打开链接题目解法很有意思的题,但不难首先一个显然的结论是:算着边的加入,直径长度递减第一眼看到误差范围是2倍,可以想到二分可以观察到如果取答案为\(\frac{n}{2}\)可以覆盖到\(\frac{n}{4}\)(上下取整不重要),那这样每次可以把值域范围缩小4倍,然后只要二分直......
  • Maximum Diameter 题解
    MaximumDiameter题目大意定义长度为\(n\)的序列\(a\)的权值为:所有的\(n\)个点的第\(i\)个点的度数为\(a_i\)的树的直径最大值,如果不存在这样的树,其权值为\(0\)。给定\(n\),求所有长度为\(n\)的序列的权值和。思路分析\(n\)个点的树的边数为\(n-1\),总度数......
  • 视图中的难点:主键表 About Key-Preserved Tables
    http://wmlm.itpub.net/post/12871/278640因为在项目中大量地使用了视图,而在视图上的更新上产生了一点儿问题,所以抽时间对可更新视图进行了复习,英文看得多了,也就成了中文 测试用表CREATETABLEDept_tab(DeptnoNUMBER(4)PRIMARYKEY,DnameVARCHAR2(14),LocVARCHAR2(13));CR......
  • Codeforces 1458F - Range Diameter Sum
    先考虑直径的一些求法:最普遍的想法肯定是从点集中任意一个点开始DFS找到距其最远的点,再一遍DFS找到距离你找到的那个点最远的点。但是放在这个题肯定是不太行的。因此考虑一种更常用的求法:合并。更直观地说:我们定义树上一个圆\((x,r)\)表示距离\(x\)点\(\ler\)的所有点......
  • tree_diameter
        publicstaticintheight(BinTreeT){if(T==null){return-1;}else{returnMath.max(height(T.left),height(T.right))+1;}}/**ReturnthediameterofT.*/publicstaticintdiameter(BinTreeT){if(T==null){return0;}else{in......
  • Warning: usage of --preserve-metadata with option "resource-rules" (deprecated i
    jenkins构建项目的时候报错:error1.Output:Warning:usageof–preserve-metadatawithoption“resource-rules”(deprecatedinMacOSX>=10.10)!报错原因:是因为Xcode自带的打包插件PackageApplication在MacOSX>=10.10的时候,不支持ResourceRules.plist的重签名打......
  • AtCoder Beginner Contest 221 F Diameter set
    洛谷传送门AtCoder传送门显然,选出的每两个点都要组成一条直径。还是显然,每条直径的重合部分只可能是一个点或一条边。简单证一下,没有重合显然不可能,重合超过一个点或一条边,直径会更长。进一步发现,设直径点数为\(x\),如果\(x\nmid2\),重合部分是一个点,否则重合部分是一条边......
  • 「题解」ABC290F Maximum Diameter
    没动脑子就gf一路写下来了......实际上就是把插板法的gf写了一下/zk首先考虑一下一个\(X\)合法是什么情况,那就是总和是\(2n-2\)并且保证\(0<X_i<n\)。证明就考......
  • CF1804F Approximate Diameter 题解
    前言在学校机房被学长推荐了这道题,听完正解后惊为天人...简化版题面给定一张无向连通图,定义直径\(d=\max(dis(i,j))\quad(i,j\inN)\),其中\(dis(i,j)\)指的是\(......
  • 【题解】ABC290F Maximum Diameter
    大龄选手只杀到E,鉴定为寄。思路正解是高明数数,这里提供一种强行推导的方法。首先有一个死掉的思路:原问题等价于求所有\(n\)个点的有标号无根树的直径之和。如果有什......