首页 > 其他分享 >树上差分

树上差分

时间:2022-12-25 16:56:08浏览次数:57  
标签:int 边权 差分 ++ LCA diff 树上

title: 树上差分
date: 2022-11-15 10:30:06
tags: 算法

本文章遵守知识共享协议 CC-BY-NC-SA ,转载时须在文章的任一位置附上原文链接和作者署名(rickyxrc)。推荐在我的个人博客阅读。

树上点差分

问题描述:给定一个有n个点的树,所有节点的权值初始时都为0.有k次操作,每次指定两个点S,T,将S,T路径上的所有点权值+1,求操作完后所有点的值。

前置知识

树上差分图示

void treePointSequnenseAdd(int S,int T){
    diff[S]++;
    diff[T]++;
    int LCA = queryLCA(S,T);
    diff[LCA]--;
    diff[fa[LCA][0]]--;
}

树上边差分

概念:边权化点

边权化点:边权被转化成该点到父亲的连线

diff[i]代表ifa[i][0](父亲节点)的边权差分。

void treeLineSequnenseAdd(int S,int T){
    diff[S]++;
    diff[T]++;
    diff[LCA]-=2;
}

标签:int,边权,差分,++,LCA,diff,树上
From: https://www.cnblogs.com/rickyxrc/p/17004210.html

相关文章

  • 差分进化算法求解TSP问题(附MATLAB代码)
    愿你搜索到人生的最优解文案:挽月排版:随心390hello,大家好。各位可点击左下方阅读原文,访问公众号官方店铺。谨防上当受骗,感谢各位支持!在上周的运筹学课中,听老师吹了一波差分进......
  • 改进差分进化算法求解容量受限的车辆路径(CVRP)问题MATLAB代码
    ​​▎​​​​号内搜索​​hello,大家好。各位可点击上方号内搜索搜索往期推文,点击左下方阅读原文,即可访问公众号官方店铺。谨防上当受骗,感谢各位支持!在​​改进差分进化算......
  • 省选03. 树上问题
    P2664树上游戏首先,将贡献拆成每种颜色对每个点的贡献。考虑已经选择了一种颜色,将这些颜色的点和所对应边全部删去,就得到了很多连通块。假设其中一个连通块的大小为\(s......
  • 洛谷P2680 运输计划(LCA + 二分 + 树上边差分)
    洛谷P2680运输计划​ 现在有一棵树,每条树边上都有正权值。接下来,有m个询问,每次询问给出两个结点,这两个结点之间有一条路径。现在你可以任选一条树边,将其边权置为0,请输......
  • 前缀和与差分
    1.一维前缀和前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和,而差分可以看成前缀和的逆运算。合理的使用前缀和与差分,可以将某些复杂的问题简单化。有一......
  • 树上启发式合并
    树上问题都是神仙又称\(DSUontree\)前置芝士会重链剖分的思想(就是只会口胡就行)适用范围:我也不知道理论就是对每个结点,暴力统计其子树内的信息只不过在每个结点......
  • P4231 三步必杀——二阶差分
    问题摘要:\(N\)个柱子排成一排,一开始每个柱子损伤度为0。接下来勇仪会进行\(M\)次攻击,每次攻击可以用4个参数\(l\),\(r\),\(s\),\(e\)来描述:表示这次攻击作用范围为第\(l......
  • 强化学习(六):时序差分方法
    强化学习(六):时序差分方法  时序差分(TD)方法结合了动态规划与蒙特卡洛的思想,其可以像蒙特卡洛方法一样直接从智能体与环境互动的经验中学习,而不需要知道环境的模型,其又可以像......
  • 797差分
    原题链接定义差分数组b[],其中\(b[i]=a[i]-a[i-1]\)\(a_{x}=\sum_{i=1}^{x}b_{i}\)更改\(a[l~r]\),只要更改\(b[l-1]\)和\(b[r]\)即可,最后要对\(b[]\)数组做......
  • 二次差分维护
    原理类似,用线段树来维护区间求和,只是一个是一次差分的值,一个是二次差分的值P1438无聊的数列每次加上等差数列,单点查询#include<bits/stdc++.h>usingnamespacestd;......