problem && blog

第一道正经的 Ynoi,特此写篇题解纪念一下。


Algorithm 1

可以想到 \(O(nm)\) 的 DP。

我们定义 \(dp_u\) 为 \(u\) 子树内并包含 \(u\) 的连通点集,权值之和最大。

所以就有 DP 式啦!!

\[dp_u = a_u + x + \max(0,dp_v)
\]

Algorithm 2

我们需要考虑优化。

既然加上 \(dp_v\) 的条件为 \(dp_v \ge 0\)。那么我们可以把不符合这个条件 \(v\) 与他的父亲节点 \(u\) 的边删掉,到 \(dp_v \ge 0\) 时把 \(v\) 和 \(u\) 连起来。

所以我们的 DP 转移就变成了:

\[dp_u = a_u + x + dp_v
\]

如果我们把 \(x\) 从小到大排序,那么 \(dp_u\) 就一定是单调递增的。

所以 \(\max(0,dp_u)\) 是取 \(0\) 还是 \(dp_u\) 指只会变一次。

所以 \(u\) 与 \(v\) 的联通关系也只会改变一次。

所以我们如果可以的时候只需要在 \(dp_v\) 大于 \(0\) 时从 \(v\) 往上走,如果可以联通就连上。

此时我们需要计算 \((u,v)\) 这一条边在 \(x \ge\) 时联通。

所以我们就可以列出方程:

\[siz \times val + sum \ge 0
\]

解出 \(val \le \left \lceil \dfrac{-sum}{siz} \right \rceil\)。

其中 \(sum\) 为子树和,\(siz\) 为字数大小。

所以我们就可以把所有的 \(\left \lceil \dfrac{-sum}{siz} \right \rceil\) 扔到一个堆里。每次取出最小元素看是否小于等于当前的 \(x\),如果小于等于就修改。

所以我们只需要一个数据结构维护以下几种操作:

  1. 加边.

  2. 将某个点到根的路径修改。

  3. 单点查询。

我们做出来的新树中某个点到根的路径在原树中就是一条链。

所以其实我们可以忽视这个动态加边,只需用并查集维护根节点即可。

对于 \(2,3\) 操作,树剖肯定会超时,所以我们考虑树上差分。

查询时,只需查询这个点子树内所有点权和。这样就可以 \(dfs\) 序 + 树状数组维护即可。


code

随机推荐

  1. DTCC 2020 | 阿里云王涛:阿里巴巴电商数据库上云实践

    简介: 第十一届中国数据库技术大会(DTCC2020),在北京隆重召开.大会以"架构革新 高效可控"为主题,重点围绕数据架构.AI与大数据.传统企业数据库实践和国产开源数据库等内容 ...

  2. K8s Ingress Provider 为什么选择 MSE 云原生网关?

    ​简介:在虚拟化时期的微服务架构下,业务通常采用流量网关 + 微服务网关的两层架构,流量网关负责南北向流量调度和安全防护,微服务网关负责东西向流量调度和服务治理,而在容器和 K8s 主导的云原生时代, ...

  3. 为什么Spring仍然会是云原生时代最佳平台之一?

    简介: 基于Java语言的Spring生态,还能否适应新的开发方式,比如Cloud Native.Serverless.Faas等,它还会是云原生时代的最佳平台的选择吗?本文将从5个角度来为你分析一下 ...

  4. 阿里云消息队列 RocketMQ 5.0 全新升级:消息、事件、流融合处理平台

    ​简介: RocketMQ5.0 的发布标志着阿里云消息从消息领域正式迈向了"消息.事件.流"场景大融合的新局面.未来阿里云消息产品的演进也将继续围绕消息.事件.流核心场景而开展. ...

  5. 【CDS技术揭秘系列 总篇】阿里云的云定义存储来了

    ​简介: 全新发布的云定义存储 CDS 和传统的存储阵列.分布式存储.软件定义存储的区别在哪里?阿里云存储团队如何看待将来存储的发展趋势?本文邀请了 CDS 研发团队的核心技术负责人为大家揭开围绕着阿 ...

  6. [GPT] Unable to negotiate with xx.xx.xx.xx port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss

      这个错误通常发生在 SSH 客户端无法找到与 SSH服务器 匹配的主机密钥类型时. 这可能是因为SSH服务器配置为使用SSH客户端不支持的主机密钥类型. 要解决此问题,您需要将缺少的主机密钥类型添 ...

  7. [PHP] Laravel 的 503 Service Unavailable 模板提示的来源

    当我们看到 Laravel 的 503 样式的模板时,是启用维护模式的时候的提示(php artisan down). 开启访问运行 php artisan up. Refer:Laravel 503 ...

  8. WPF 优化 EnsureHandle 启动性能

    本文将记录一个在 WPF 应用程序启动过程中的性能优化点.如果一个窗口需要设置 WindowStyle 属性,那么在窗口 EnsureHandle 之前,设置 WindowStyle 属性将会比在 E ...

  9. 使用 WPF 做个 PowerPoint 系列 文本 BodyProperties 的 FontScale 与文本字号缩放

    本文来告诉大家,在 OpenXML 的 BodyProperties 的 NormalAutoFit 的 FontScale 属性缩放文本框的文本字号的方法 通过 ECMA 376 文档可以了解到 B ...

  10. github只下载某个文件或文件夹(使用GitZip插件)

    安装GitZip插件 (此安装过程需要梯子(不懂"梯子",百度一下就明白)) 1. 打开插件管理页面 方法一:打开Chrome浏览器(Edge浏览器同理),在Chrom地址栏输入c ...