求助树上问题(祝NOIP rp++)
  • 板块学术版
  • 楼主Kalenist
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/11/14 18:02
  • 上次更新2023/11/14 19:51:57
查看原帖
求助树上问题(祝NOIP rp++)
557754
Kalenist楼主2023/11/14 18:02

求助站外题:有一颗初始只有根节点00的树,将 11 到 nn 节点从小到大作为叶子加入。一棵树的权值定义为∑i×sz×(sz+1)2\sum i\times\frac{sz\times(sz+1)}{2},ii 为树上每个点,szsz 为其对应子树大小。求每次加入点后当前树的权值。总结点数不超过10510^5。题解思路是对答案差分,转化为求加入一个点后的权值增量。那么加入一个点xx后它自身或其祖先ancanc都会造成anc×szanc\times sz的增量,szsz为新树上对应节点的子树大小。再在最终的树上考察一个点xx在其儿子sonson加入时产生的贡献,为x×cntx\times cnt,cntcnt为xx子树中编号≤son\leq son的节点个数。再考虑线段树合并维护答案,线段树内即存每个节点加入后的增量,但我发现对cntcnt的维护很棘手。求维护方法或此题的其他实现思路。若能相助感激不禁!

2023/11/14 18:02
加载中...