P7897
第一道正经的 Ynoi,特此写篇题解纪念一下。
Algorithm 1
可以想到 \(O(nm)\) 的 DP。
我们定义 \(dp_u\) 为 \(u\) 子树内并包含 \(u\) 的连通点集,权值之和最大。
所以就有 DP 式啦!!
\]
Algorithm 2
我们需要考虑优化。
既然加上 \(dp_v\) 的条件为 \(dp_v \ge 0\)。那么我们可以把不符合这个条件 \(v\) 与他的父亲节点 \(u\) 的边删掉,到 \(dp_v \ge 0\) 时把 \(v\) 和 \(u\) 连起来。
所以我们的 DP 转移就变成了:
\]
如果我们把 \(x\) 从小到大排序,那么 \(dp_u\) 就一定是单调递增的。
所以 \(\max(0,dp_u)\) 是取 \(0\) 还是 \(dp_u\) 指只会变一次。
所以 \(u\) 与 \(v\) 的联通关系也只会改变一次。
所以我们如果可以的时候只需要在 \(dp_v\) 大于 \(0\) 时从 \(v\) 往上走,如果可以联通就连上。
此时我们需要计算 \((u,v)\) 这一条边在 \(x \ge\) 时联通。
所以我们就可以列出方程:
\]
解出 \(val \le \left \lceil \dfrac{-sum}{siz} \right \rceil\)。
其中 \(sum\) 为子树和,\(siz\) 为字数大小。
所以我们就可以把所有的 \(\left \lceil \dfrac{-sum}{siz} \right \rceil\) 扔到一个堆里。每次取出最小元素看是否小于等于当前的 \(x\),如果小于等于就修改。
所以我们只需要一个数据结构维护以下几种操作:
加边.
将某个点到根的路径修改。
单点查询。
我们做出来的新树中某个点到根的路径在原树中就是一条链。
所以其实我们可以忽视这个动态加边,只需用并查集维护根节点即可。
对于 \(2,3\) 操作,树剖肯定会超时,所以我们考虑树上差分。
查询时,只需查询这个点子树内所有点权和。这样就可以 \(dfs\) 序 + 树状数组维护即可。
随机推荐
- Fury:一个基于JIT动态编译的高性能多语言原生序列化框架
简介: Fury是一个基于JIT动态编译的多语言原生序列化框架,支持Java/Python/Golang/C++等语言,提供全自动的对象多语言/跨语言序列化能力,以及相比于别的框架最高20~200倍的 ...
- 基于SLS构建RDS审计合规监控
简介: 数据库是企业业务的数据核心,其安全方面的问题在传统环境中已经成为泄漏和被篡改的重要根源.因此,对数据库的操作行为尤其是全量 SQL 执行记录的审计日志,就显得尤为重要. 背景 数据库是企业业务 ...
- 长文解析:作为容器底层技术的半壁江山, cgroup如何突破并发创建瓶颈?
简介: io_uring 作为一种新型高性能异步编程框架,代表着 Linux 内核未来的方向,当前仍处于快速发展中.阿里云联合 InfoQ 发起<io_uring 介绍及应用实践>的技术 ...
- 运行模型对比 gemma:7b, llama2, mistral, qwen:7b
[gemma:2b] total duration: 1m5.2381509sload duration: 530.9µsprompt eval duration: 110.304msprompt e ...
- dotnet 读 WPF 源代码笔记 渲染层是如何将字符 GlyphRun 画出来的
从业务代码构建出来 GlyphRun 对象,在 WPF 的渲染层里,如何利用 GlyphRun 提供的数据将字符在界面呈现出来.本文将和大家聊聊从 WPF 的渲染层获取到 GlyphRun 数据,到调 ...
- JS代码优化小技巧
下面介绍一种JS代码优化的一个小技巧,通过动态加载引入js外部文件来提高网页加载速度 [基本优化] 将所有需要的<script>标签都放在</body>之前,确保脚本执行之前完 ...
- VSCode 中安装 esp-idf
一.准备工具 首先需要安装好 VSCode 软件和 esp-idf 环境. 安装 VSCode VSCode 安装比较简单,我就不赘述了,进入官网下载一键安装即可 VSCode官网:https://c ...
- @Async异步失效的9种场景
前言 最近星球中有位小伙伴问了我一个问题:他在项目某个方法使用@Async注解,但是还是该方法还是同步执行了,异步不起作用,到底是什么原因呢? 伪代码如下: @Slf4j @Service publi ...
- Python字符串方法:字符串查找、替换、分割
字符串查找 Python 提供了内置的字符串查找方法find(),利用该方法可以在一个较长的字符串中查找子字符串.如果该字符串中,有一个或者多个子字符串,则该方法返回第一个子串所在位置的最左端索引,若 ...
- Linux部署Apache 网站服务器(httpd服务)
一.项目导入: 某学院组建了校园网,建设了学院网站.现需要架设Web服务器来为学院网站安家,同时在网站上传和更新时,需要用到文件上传和下载,因此还要架设FTP服务器,为学院内部和互联网用户提供WWW. ...