首页 > 其他分享 >CF1827D 题解

CF1827D 题解

时间:2023-07-10 17:25:30浏览次数:40  
标签:lfloor maxx 子树 题解 maxsiz text CF1827D

problem & blog

很好的题。用到一些关于重心的 trick。


不妨认为只有一个重心 \(\text{maxx}\)。设当前节点数为 \(n\),重儿子所在的子树的大小为 \(\text{maxsiz}\),那么答案即 \(n - 2\times\text{maxsiz}\),方法是往重儿子的那个子树爆加节点。

因此需要在线维护 \(\text{maxx}\) 与 \(\text{maxsiz}\)。假设已知上一次操作的 \(\text{maxx}\) 与 \(\text{maxsiz}\),分类讨论以求出新的值。

  • \(u\) 在 \(\text{maxx}\) 的子树里。若新的子树超过了 \(\left\lfloor\dfrac n2\right\rfloor\),更新 \(\text{maxx}=u,\text{maxsiz}=\left\lfloor\dfrac n2\right\rfloor\)。否则,直接更新 \(\text{maxsiz}\)。
  • \(u\) 不在 \(\text{maxx}\) 的子树里。过程和上面类似,只是添加到 \(fa_u\) 对应的地方。

新的子树的 \(\text{siz}\) 用树状数组维护维护 dfs 序即可。实现方面,还要写个倍增跳 \(k\) 级祖先的操作,整体细节不多。

代码,时间复杂度 \(O(n\log n)\)。

标签:lfloor,maxx,子树,题解,maxsiz,text,CF1827D
From: https://www.cnblogs.com/liangbowen/p/17541713.html

相关文章

  • CF1601F Two Sorts 题解--zhengjun
    link这里提供一种不用meetinmiddle的方法,速度比较可观。发现性质开始简单的推一下式子。\(\sum(i-a_i)\bmodp=\sum(rk_i-i-p\times\lfloor\frac{rk_i-i}{p}\rfloor)=-p\times\sum\lfloor\frac{rk_i-i}{p}\rfloor,p=998244353\)于是,只需求出\(\sum\lfloor\frac{rk_i-......
  • C++题解——格子游戏
    题目链接:一本通TFLSOJ思路:使用并查集给点连接,如果在连接过程中遇到已连接的点二次连接,就输出代码:#include<bits/stdc++.h>usingnamespacestd;structnode{ intx,y;};nodef[205][205];intn,m;nodefind(nodek){ if(f[k.x][k.y].x==k.x&&f[k.x][k.y].y==k.y)retur......
  • Windows下安装python2和python3双版本及问题解决
    现在大家常用的桌面操作系统有:Windows、MacOS、ubuntu,其中MacOS和ubuntu上都会自带python。这里我们只介绍下Windows(我用的Win10)环境下的python2.x和python3.x的安装,以及python2.x与python3.x共存时的配置问题。本节内容python下载安装Python2.x安装Python3.x当前存......
  • 洛谷P1443:马的遍历--题解
    写在前面这是蒟蒻第一篇题解。作为一名没带脑子的初中生的第一篇题解,本题解必定存在诸多错误,给您带来的不便敬请谅解。对于不足之处与错误,还请多多包涵,并欢迎批评指正!本题目来自于洛谷,网址https://www.luogu.com.cn/problem/P1443。非营利性,侵权请联系删除。题目详情马的遍历......
  • Seata-server.bat闪退问题解决及Seata快速搭建
    转:Seata-server.bat闪退问题解决及Seata快速搭建 1.4上 部署的话 参考下边的地址:seata部署指南(v1.6.1) 启动seata服务前请先做好配置 ......
  • 「BalticOI 2011 Day2」Tree Mirroring 题解
    本文网址:https://www.cnblogs.com/zsc985246/p/17539182.html,转载请注明出处。题目大意现在有一棵树\(T\),复制一个完全相同的\(T'\),并将这两棵树的叶子节点全部对应合并在一起,形成一个图,我们称这种图为对称图。给定一个图,判断它是否为对称图。\(3\len,m\le10^5\)思路......
  • P5175 题解
    题意简述给出数列\({a_n}(1\len\le10^{18})\)的两项\(a_1,a_2\)与递推公式\(a_n=xa_{n-1}+ya_{n-2}\),求:\[S_n=\sum_{k=1}^{n}a_k^2\mod(10^9+7)\]题目分析一看见\(1\len\le10^{18}\),就大概能知道要用\(O(\logn)\)级别的算法。再一看递推,就知道要用矩阵快速幂了。......
  • AT2402 题解
    题意简述给你\(n\)杯水,第\(i\)杯的水温为\(t_i\),容量为\(v_i\),依次倒入容量为\(V\)的大盆。注意每次倒入水后盆内水的总体积必须恒定为\(V\),且每杯水必须全部倒入,因此为防止倒进水时溢出,在倒水之前可以从盆里往外倒出一些水。求每次倒进水后盆里水温度的最大值(每次计算......
  • P4819 题解
    题意简述\(n\)个居民中有一名杀手,有些居民知道其他一些人的身份是杀手还是平民,该类条件共\(m\)条。现在警方要询问一些居民来获得其他人的信息,要求在能够从已知条件推断出杀手是谁的前提下询问尽可能少的人。然而每个居民是杀手的概率都是\(\frac{1}{n}\),因此警方询问的居民......
  • redis雪崩问题解决
    缓存雪崩出现的场景缓存服务器宕机,没有设置持久化介绍:缓存服务器宕机,没有设置持久化,导致缓存数据全部丢失,请求全部转发到数据库,造成数据库短时间内承受大量请求而崩掉。缓存集中失效缓存的key设置了相同的过期时间,导致在某一时刻,大量的key同时失效,请求全部转发到数据库,造成......