当前位置: 首页 > news >正文

小清新数据结构题

小清新数据结构题

非常清新的好题

题意

我因为没读懂题卡了一天

维护两个操作

  1. 改点权

  2. 查询以 \(u\) 为根时所有子树点权和的平方

    也就是 \(\sum s_u^2\)

思路

首先这里的根在不断换

考虑换根

先以1为根求出 \(A = \sum s_u^2\)

  1. 改点权

    显然在 \(u\) 到根的路径上的 \(s\) 都会受影响

    也就是 \(s \to (s + \Delta) ^ 2\),拆开变成 \(s^2 + \Delta^2 + 2 \times s \times \Delta\)

    这个增量是在路径上的每个节点的增量

    \(s\) 没有变化, 于是 \(ans_r = A + dep_r \cdot S^2 + 2S \cdot \text{pathsum}(1\to r)\)

  2. 查询

    设路径为:\(v_0 = 1, v_1, v_2, ..., v_k = r\),其中 \(k\) 是从1到r的边数。

    对于路径上的节点:

    1. 新根 \(r\):包含所有节点

      \[s2_r = S \]

    2. 其他节点 \(v_i (0 \le i < k)\)

      • 以1为根时:\(v_{i+1}\)\(v_i\) 的子树中
      • \(r\) 为根时:\(v_i\)\(v_{i+1}\) 的子树外

      \[s2_{v_i} = S - s_{v_{i+1}} \]

      所以

      \[ans_r - A =\sum_{u} (s2_u^2 - s_u^2) \]

      关注右边的式子

      对于 \(r\)

      \[s2_r^2 - s_r^2 = S^2 - s_r^2 \]

      其他 \(v_i\)

      \[s2_{v_i}^2 - s_{v_i}^2 = (S - s_{v_{i+1}})^2 - s_{v_i}^2 \]

      所以

      \[ans_r - A = \sum_{i=0}^{k-1} \left[(S - s_{v_{i+1}})^2 - s_{v_i}^2\right] + (S^2 - s_r^2) \]

      展开

      \[= \sum_{i=0}^{k-1} \left[S^2 - 2S s_{v_{i+1}} + s_{v_{i+1}}^2 - s_{v_i}^2\right] + S^2 - s_r^2 \]

      \[= (k+1)S^2 - 2S \sum_{i=0}^{k-1} s_{v_{i+1}} + \sum_{i=0}^{k-1} (s_{v_{i+1}}^2 - s_{v_i}^2) - s_r^2 \]

      对于第二项进行化简

      \[\sum_{i=0}^{k-1} (s_{v_{i+1}}^2 - s_{v_i}^2) = s_r^2 - s_1^2 \]

      带入

      \[ans_r - A = (k+1)S^2 - 2S \sum_{i=1}^k s_{v_i} + (s_r^2 - s_1^2) - s_r^2 \]

      \[= (k+1)S^2 - 2S \sum_{i=1}^k s_{v_i} - s_1^2 \]

      \(s_1=S\)

      所以

      \[ans_r - A = k\times S^2 - 2S \sum_{i=1}^k s_{v_i} \]

      注意,这里的 \(k\) 其实上是 \(dep_r + 1\)

      也就是

      \[ans_r = A + (dep_r + 1) \times S^2 - pathsum(1 \to r) \times 2s \]

有了这两个式子

点分树或者树链剖分维护路径点权和即可

应该不需要代码了吧

http://www.jsqmd.com/news/363050/

相关文章:

  • 企查查开放强大的平台MCP:为AI智能体注入精准商业素材,驱动智能决策新时代
  • 程序员修炼之道——从小工到专家2
  • 基于C#实现多线程串口通信
  • 2026市场调研优质品牌推荐榜 助力企业决策 - 优质品牌商家
  • Robotics Toolbox for MATLAB
  • 光亚鸿道子公司科东软件荣获国家级专精特新“小巨人”企业授牌
  • Chapter14—中介者模式 - 教程
  • 统领工业 “智能大脑”,以根技术开启自主控制新纪元
  • ANELLO Photonics 与 Delta Black Aerospace 展开合作
  • GP8501 PWM转0-2.5V模拟电压模块原理图设计,已量产
  • 职业教育的“风口”已变!职业教育相关从业者,这波红利你赶上了吗?
  • Java毕设项目推荐-基于 SpringBoot 的高校办公室行政事务管理系统设计与实现基于springboot的校园行政事务审批服务系统的设计与开发【附源码+文档,调试定制服务】
  • VMD-SE-LSTM+Transformer多变量时序预测,MATLAB代码
  • GP8503 I2C转0-2.5V模拟电压模块原理图设计,已量产
  • Java毕设项目:基于springboot的校园行政事务审批服务系统的设计与开发(源码+文档,讲解、调试运行,定制等)
  • 手把手教你在Win10上为Vibe Writing项目搭建Claude Code环境
  • 软件工程专业毕业设计选题方向汇总(2026最新版|含难度分级+技术栈)
  • #车载测试:基于Python与CAPL的程控电源协同控制方案
  • 2026年市场调查优质机构推荐榜:第三方市场调查机构推荐/第三方市场调查机构推荐/第三方市场调研公司推荐/选择指南 - 优质品牌商家
  • jQuery 添加元素
  • SAP S4HANA 2025 FAA虚拟机介绍
  • c++-—
  • 免费网站模板下载网站
  • ue5 正确关闭自动曝光
  • 职教数字化八年观察:当代码成为产教融合的“隐形桥梁”
  • Solution - P5471 [NOI2019] 弹跳
  • Excel条件格式高级应用:动态图标集标记成绩与平均分比较
  • 防冻液优质厂家推荐及选购指南 - 优质品牌商家
  • [python]-LangChain
  • Java毕设项目推荐-基于Spring Boot的社区便民服务管理系统的设计与实现基于springboot的在线社区系统的设计与开发【附源码+文档,调试定制服务】