树上差分
图论专题-差分约束系统、强连通分量、二分图
图论专题-差分约束系统、强连通分量、二分图 题单 二分图 关押罪犯 看到 最大值最小 的条件首先想到二分,然后问题转化为是否存在一种分配方式,使得所有仇恨值 \(> mid\) 的罪犯分在两间牢房里。 我们不能让所有仇恨值 $ > mid$ 的罪犯对分到一个牢房里,如果把罪犯之间的仇恨关系看作是一条 ......
洛谷P1250 种树 题解 差分约束求最小解集
题目链接:https://www.luogu.com.cn/problem/P1250 题目大意:略 解题思路:差分约束 求 最长路。 关于为什么求最长路可以看一下这边博客:《关于差分约束系统中跑最长路还是最短路的澄清》 博客的核心思想就是一句话: 要想求最小解集跑最长路;要想求最大解集跑最短路。 ......
【杂记】有上限的树上背包问题的时间复杂度证明
结论:若树上背包的上限为 \(k(k\le n)\),时间复杂度为 \(O(nk)\)。 参考实现: dfs(u) { sz[u] = 1; init(f[u]); for (v : son[u]) { dfs(v); for (i = 0; i <= k and i <= sz[u]) for ( ......
有上限的树上背包问题的时间复杂度证明
结论:若树上背包的上限为 \(k(k\le n)\),时间复杂度为 \(O(nk)\)。 参考实现: dfs(u) { sz[u] = 1; init(f[u]); for (v : son[u]) { dfs(v); for (i = 0; i <= k and i <= sz[u]) for ( ......
差分约束(Differential constraint)
test definition 差分约束系统 是一种特殊的 \(n\) 元一次不等式组,它包含 \(n\) 个变量 \(x_1,x_2\),\(\dots,x_n\) 以及 \(m\) 个约束条件,每个约束条件是由两个其中的变量做差构成的,形如 \(x_i-x_j\leq c_k\),其中 \(1 ......
差分隐私的原理、优势和应用案例
由于声誉受损或受到法规罚款等因素,数据隐私的侵犯对组织来说代价高昂。根据IBM的2022年数据泄露成本报告,数据泄露的平均总成本接近450万美元。但是许多重要的业务问题仍然需要访问私人信息,这就需要隐私保护,本文介绍2023年被重点关注的隐私保护技术——差分隐私。 ......
matlab运动目标检测-背景差分算法
clear; clc; i1=imread('D:\Work\1.png'); i2=imread('D:\Work\2.png'); i1=rgb2gray(i1); i2=rgb2gray(i2); [m,n]=size(i1); im1=double(i1); im2=double(i2); ......
基于FPGA的图像差分运算及目标提取实现,包含testbench和MATLAB辅助验证程序
1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.算法理论概述 基于FPGA(Field-Programmable Gate Array)的图像差分运算及目标提取实现主要涉及图像处理、差分运算和目标提取等原理和数学公式。 一、图像处理原理 图像处理是一种对图像信息进行加工、分 ......
C++U4-第10课-前缀和与差分
学习目标 前缀和解决的问题 前缀和概念 前缀和构建方式 前缀和主要解决区间求和问题 练习题1:[前缀和] 【算法分析】 前缀和数组 s 的含义是 s[i] 表示 a[1] ~ a[i] 的和 ,那么 ∑ i=l i=r a[i] = s[r]−s[l−1]。 【参考代码】 #include <i ......
算法差分
import java.util.Scanner; public class Main{ static final int N = 100010; static int[] a = new int[N]; static int[] b = new int[N]; public static void ......
【模版】差分
问题引入:洛谷P2367 班上一共n个学生,语文老师需要对成绩进行p次修改,每次修改需要给第x个学生到第y个学生每个人增加z分,语文老师想知道修改成绩后的最低分。 对于 $40\%$ 的数据,有 $n \le 10^3$。 对于 $60\%$ 的数据,有 $n \le 10^4$。 对于 $80\% ......
离散化,前缀和,差分
离散化,前缀和,差分 一维前缀和和差分之前学过不再记录 二维情况 前缀和 多维前缀和的普通求解方法几乎都是基于容斥原理 例如有这样一个矩阵,可以视为二维数组: 1 2 4 3 5 1 2 4 6 3 5 9 定义一个矩阵\(sum\)使得\(sum_{x,y}=\sum_{i=1}^{x}\sum_ ......
差分
P3397 地毯 syoj 1829. 地毯 二维差分板子。 #include<bits/stdc++.h> using namespace std; const int N=1010; int n,m; int a[N][N],s[N][N]; int main(){ scanf("%d%d",& ......
P2664 树上游戏 题解
原题链接:P2664。 题意:给定一棵树,每个点都有一个颜色 \(c_{i}\)。对于每一个点 \(i\),求出 \(\sum_{j=1}^{n}s(i,j)\) 的值。其中 \(s(i,j)\) 表示点 \(i\) 到点 \(j\) 的颜色数量。 路径相关,考虑点分治。 假设当前的重心为 \(u\ ......
【模板】树上启发式合并 dsu on tree
所选例题 模板 点击查看代码 #include<bits/stdc++.h> using namespace std; #define endl '\n' #define pb push_back #define rep(i,a,n) for(int i=a;i<=n;i++) #define pe ......
前缀和,差分,二叉堆
目录前缀和一维数组前缀和二维数组前缀和差分二叉堆 前缀和 一维数组前缀和 代码如下: for(int i=0;i<n;i++){ if(i==0) y[i]=x[i]; else y[i]=y[i-1]+x[i]; } 或者 for(int i=1;i<=n;i++){ y[i]=y[i-1]+x[ ......
【杂题乱写】12 月北京省选树上问题专题训练
A. Luogu-P9058 Ynoi 2004 rpmtdq 解密:Range Pair Mininum Tree Distance Query 支配对问题,这里的支配是若 \(L\le l<r\le R\),且 \(\mathrm{dist}(l,r)\le \mathrm{dist}(L,R) ......
【笔记】2023.12.14 树上问题
笔记 2023.12.14:树上问题 [Ynoi2004] rpmtdq 支配对:\(i_1\leq i_2\leq j_2\leq j_1, dist(i_1, j_1)\geq dist(i_2, j_2)\) 时,称 \((i_1, j_1)\) 被 \((i_2, j_2)\) 支配,前者就 ......
U41492 树上数颜色 题解
Link U41492 树上数颜色 Question 给出一个树,每个节点有一个颜色,求一个子树内有多少种不同的颜色 Solution 问题可以用树上莫队来解决,但是也可以使用树上启发式合并 先计算并保留重儿子的贡献,然后将轻儿子 "加" 到重儿子的贡献上面 总时间复杂度 \(O(n \log n) ......
牛客挑战赛71 B树上博弈
Link 一道很有意思的min-max博弈 用树上dp来解决,那么显然的,当前节点是谁取的会影响答案,\(dp2_{i,j}\)表示取当前阶段,被Alice/Bob取走的结果, 并且这个题是取子树上任意的节点,那么还需要保存子树上的信息,故使用\(dp_{i,j}\)记录下子树中的Alice/Bob ......
差分
P2367 语文成绩 P2367 语文成绩 - 洛谷 暴力模拟过不了,时间复杂度是 \(\operatorname O(n^2)\)。 差分思想 对于数组 \(a\),定义 \(a\) 的差分数组为 \(b\),其中 \(b_1 = a_1, b_i = a_i - a_{i - 1}(2\leq ......
树上启发式合并
树上启发式合并(常常也叫DSU On Tree,但其实和DSU并没有特别大关系),是一种解决某些树上离线问题的算法,尤其常被用于解决“对每个节点,询问关于其子树的某些信息”这样的问题。 假设我们要对树上的每个节点p求ans[p] ,且这个ans[p] 可以通过合并p的子节点的某些信息得知,一般来说我 ......
【模板】差分约束
给出一组包含 \(m\) 个不等式,有 \(n\) 个未知数的形如: \[\begin{cases} x_{c_1}-x_{c'_1}\leq y_1 \\x_{c_2}-x_{c'_2} \leq y_2 \\ \cdots\\ x_{c_m} - x_{c'_m}\leq y_m\end{cas ......
树上启发式合并(dsu on tree)
dsu on Tree(树上启发式合并) 当遇到处理子树询问,并且无修改时。可以考虑树上启发式合并。 算法流程: step1:处理出每个点的 \(siz_x\) 以及重儿子 \(son_x\)。 void dfs(int x, int fa) { siz[x] = 1; int Maxson = 0 ......
一种简洁且常数较小的在线树上k级祖先求解.
起因是有人在la群问 已知u是v的祖先,求u到v路径上第一个点. 怎么写比较简单. 突然想起很久之前我在la板子上写过一个题解区里没有看到的简洁做法. 有一个不难证明的结论,一个节点u的k级祖先v对应深度的所有节点中dfn序中小于等于u的最后一个点. 考虑dfn序的性质,u一定在v所在的子树的这段区 ......
差分数组
一、差分定义和性质 首先差分主要是针对一个数组中的元素进行频繁的增加或删除。假设现在有一个数组nums,现在我要对里面的某个区间的元素全部加2, 然后要对另外一个区间全部减1。一般的思路是直接for循环进行遍历,这样的话时间复杂度是O(n),而我们使用差分数组的话时间复杂度为O(1)。 对于一个数组 ......
前缀和/差分——acwing算法基础课笔记
个人笔记,欢迎补充,指正。 一维前缀和 对于数组: a[1],a[2],a[3]...a[n]; 其前缀和数组为 s[i] = a[1] + a[2] + ... + a[i]; 下标必须从1开始 求前缀和 1 for(int i=1;i<n;++i) 2 s[i] = s[i-1] + a[i]; ......
【差分数组】我的日程安排表
一、我的日程安排表 I 题目链接:我的日程安排表 I 实现一个 MyCalendar 类来存放你的日程安排。如果要添加的日程安排不会造成 重复预订 ,则可以存储这个新的日程安排。 当两个日程安排有一些时间上的交叉时(例如两个日程安排都在同一时间内),就会产生 重复预订 。 日程可以用一对整数 sta ......
#P1090. 树上简单路径
简单的dfs从1节点开始往下深搜,然后回溯记录路径 #include<bits/stdc++.h> using namespace std; const int N=1e4+10; vector<int>a[N]; int n,m; vector<int>p; void dfs(int x,int ......