参考题解地址

1. 从树上任意一个节点开始,跳到其随机一个后代,跳到叶子的期望次数为 \(H_{siz_u}=\ln(siz_u)\)。

证明:

首先考虑一条链的情况。设在第 \(i\) 个点期望次数为 \(a_u\),\(\{a\}\) 的前缀和为 \(\{S\}\),那么就有 \(a_u=1+\frac{S_{u-1}}{u-1}\)。

\[a_u=1+\frac{S_{u-1}}{u-1}\\
(u-1)a_u=u-1+S_{u-1}\\
ua_{u+1}=u+S_u\\
ua_{u+1}-(u-1)a_u=a_u+1\\
a_{u+1}=a_u+\frac 1 u\\
a_u=H_{u-1}
\]

(注意调和级数的 \(\ln\) 不带常数)

对于非链的树,随便挑一个叉出去的子树接到一个叶子下面,显然每个节点的期望步数增加,总步数增加。于是链是最坏的情况,证毕。

2. 对于任意一棵树,可以将其划分成 \(O(\log)\) 层叶链,每层叶链定义为剥出叶子及其向上跳最远使得沿途节点只有一个儿子的链。

证明:

设 \(T(u)\) 为节点 \(u\) 被删的时间,则若 \(u\) 的儿子 \(v\) 中 \(T(v)\) 最大值唯一,则 \(T(u)=T(v)\),否则 \(T(u)=T(v)+1\)。

不难归纳证明使得 \(T(u)\ge k\) 时 \(siz_u\ge 2^k-1\),证毕。

3. 对于一棵树的任意一种点分形式(不一定选重心),记一次分治的代价为分出的所有非最大子树的 \(siz\) 之和,则总代价为 \(O(n\log n)\)。

证明:

考虑每个点的贡献,每当它对代价产生贡献时 \(siz\) 一定翻倍,于是显然贡献之和为 \(O(n\log n)\)。

1.31 wlx 魔怔 9 解法交互题小结的更多相关文章

  1. Flutter实战视频-移动电商-31.列表页_列表切换交互制作

    31.列表页_列表切换交互制作 博客地址:https://jspang.com/post/FlutterShop.html#toc-c42 点击左侧的大类右边的小类也跟着变化 新建provide 要改 ...

  2. Codeforces 1137D - Cooperative Game - [交互题+思维题]

    题目链接:https://codeforces.com/contest/1137/problem/D 题意: 交互题. 给定如下一个有向图: 现在十个人各有一枚棋子(编号 $0 \sim 9$),在不 ...

  3. Codeforces Round #812 (Div. 2) D. Tournament Countdown(交互题)

    记录一下第一次写交互题 题目大意:一共有1<<n个人参加一场竞标赛,需要你通过比较两人的胜场来判断谁晋级,最终获得第一名 最多1/3*2^(n+1)次询问,每次询问query(a,b),如 ...

  4. 交互题[CF1103B Game with modulo、CF1019B The hat、CF896B Ithea Plays With Chtholly]

    交互题就是程序与电脑代码的交互. 比如没有主函数的程序,而spj则给你一段主函,就变成了一个整体函数. 还有一种就是程序和spj之间有互动,这个用到fflush(stdout);这个函数就可以实现交互 ...

  5. CF1114E Arithmetic Progression(交互题,二分,随机算法)

    既然是在CF上AC的第一道交互题,而且正是这场比赛让我升紫了,所以十分值得纪念. 题目链接:CF原网 题目大意:交互题. 有一个长度为 $n$ 的序列 $a$,保证它从小到大排序后是个等差数列.你不知 ...

  6. Gym - 101375H MaratonIME gets candies 交互题

    交互题介绍:https://loj.ac/problem/6 题意:输出Q X ,读入><= 来猜数,小于50步猜出就算过样例 题解:根本不需要每次输出要打cout.flush()... ...

  7. Codeforces Round #523 (Div. 2) F. Katya and Segments Sets (交互题+思维)

    https://codeforces.com/contest/1061/problem/F 题意 假设存在一颗完全k叉树(n<=1e5),允许你进行最多(n*60)次询问,然后输出这棵树的根,每 ...

  8. Codeforces Round #371 (Div. 2) D. Searching Rectangles 交互题 二分

    D. Searching Rectangles 题目连接: http://codeforces.com/contest/714/problem/D Description Filya just lea ...

  9. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem K. KMC Attacks 交互题 暴力

    Problem K. KMC Attacks 题目连接: http://codeforces.com/gym/100714 Description Warrant VI is a remote pla ...

  10. CF1153E Serval and Snake(交互题)

    题目 CF1153E Serval and Snake 很有意思的一道交互题 做法 我们观察到,每次查询一行,当这一行仅包含一端是返回的答案是奇数 根据这个性质查询每一行每一列,我们大体能知道两端的位 ...

随机推荐

  1. dns隧道攻击原理及常用工具流量分析

    DNS协议是一种请求应答协议,也是一种可用于应用层的隧道技术.虽然DNS流量的异常变化可能会被发现,但是在基于传统socket隧道已经濒临淘汰,TCP.UDP通信大量被安全设备拦截的大背景下,DNS. ...

  2. rocky8删除/etc/fstab 和/boot/所有文件,通过光盘救援模式恢复

    rocky8删除/etc/fstab 和/boot/所有文件,通过光盘救援模式恢复 mkdir /rootdir 先通过df和lsblk确定那个分区是根,如果确定不了,就先挂载一个分区,查看里边的文件 ...

  3. RHCE习题

    RHCE习题 考试说明: RH294系统信息 在练习期间,您将操作下列虚拟系统: 真实机: foundation: kiosk:redhat root: Asimov workstation.lab. ...

  4. Electron是什么以及可以做什么

    新用户购买<Electron + Vue 3 桌面应用开发>,加小册专属微信群,参与群抽奖,送<深入浅出Electron>.<Electron实战>作者签名版. 1 ...

  5. 【Azure 事件中心】 org.slf4j.Logger 收集 Event Hub SDK(Java) 输出日志并以文件形式保存

    问题描述 在使用Azure Event Hub的SDK时候,常规情况下,发现示例代码中并没有SDK内部的日志输出.因为在Java项目中,没有添加 SLF4J 依赖,已致于在启动时候有如下提示: SLF ...

  6. C#自定义控件开发(1)

    自定义控件可以用组件或者用户控件来开发,如果是基于基础控件,进行一些扩展,那么可以使用组件,其它的情况可以使用用户控件. 首先新建一个类库项目,然后添加一个组件,取名为ButtonExtend,再添加 ...

  7. Go语言核心36讲06

    我已经为你打开了Go语言编程之门,并向你展示了"程序从初建到拆分,再到模块化"的基本演化路径. 一个编程老手让程序完成基本演化,可能也就需要几十分钟甚至十几分钟,因为他们一开始就会 ...

  8. 基于python的数学建模---多模糊评价

    权重 ak的确定--频数统计法 选取正整数p的方法 画箱形图   取1/4与3/4的距离(IQR)  ceil()取整 代码: import numpy as np def frequency(mat ...

  9. Day19:属性封装详解

    属性封装详解 封装即隐藏一些数据,让外部不能直接访问,而是需要通过一些方法才能设置或者访问. 首先我们来看未封装的属性被外部调用的情况 public class Students{//创建一个学生类 ...

  10. ArcGISServer 10.4 虚拟机 安装 新建站点失败 Failed to configure the server machine ''. Server machine '' is not a local

    在通过 VMware  创建的虚拟机上(win7 64位)安装ArcServer 10.4,新建站点时出现下面的错误. Failed to configure the server machine ' ...