- 博客(19)
- 收藏
- 关注
原创 快速求多个区间内的不同数的数量
这个操作就是为了消去前面有相同的数时,对答案的贡献会有问题。这样正确是因为对于相同的数,越靠近右边的越可能对答案有贡献。先将所有的区间存在结构体中,然后按照区间右端点的值从小到大排序。此后,从第一个线段开始枚举,同时。这个数之前出现过,即。最后当前区间的答案即。
2023-11-25 20:26:36 522
原创 有向图的强连通分量学习笔记
若有多个强连通分量,则不存在除自己之外所有牛都喜欢自己的牛,所以答案为。若本题有解,则在缩点后的图上,我们跑最长路,每个点对答案的贡献为。一模一样,只是糖果用的是差分约束写的,本题使用有向图的强连通分量来判正环,不用。是其所在的强联通分量的最高点,因此我们需要将栈中的点依次弹出,直至弹出点。,因此我们先缩点,若有一个强连通分量的环上有一条边的权值大于。,最后统计每个点是否是该缩点后的图中的最长路,是的话。是其所在的强联通分量的最高点,等价于。点的,并且走的是最长路径的方案数。的强连通分量的数量,
2023-08-15 11:32:39 118 1
原创 最近公共祖先学习笔记
求树上两点距离时,树上差分:(详见例题)给树上两点之间的每一条路径的权值增加,则。做完上述所有操作后,统计边的权值时,等于以为根的子树上所有点的累加和,即属于以为根的子树)。以下图为例。
2023-08-10 18:23:02 45 1
原创 负环和0/1分数规划学习笔记
对于判负环问题,我们需要一个超级源点,保证图中的每一条边都可以遍历到,因此我们建立一个超级源点,让超级源点与个点分别连一条权值为的边。实际上,我们在代码实现时可以省去超级源点与个点连边的这一步,我们直接将这个点加入到队列当中。i<=n;
2023-08-08 21:46:45 44
原创 差分约束学习笔记
1. 若spfa判正/负环出现超时,则可以尝试使用将队列改为栈来存储2. 若spfa判正/负环出现超时,则可以认为如果经过的点的数量很大时,如,则认为它有正/负环。
2023-08-08 18:09:37 27
原创 快速幂与矩阵快速幂
所要用到的参数个数,例如斐波那契数列即是。的设计,前两个参数已由题目给出,分别为。,得到最终的答案矩阵之前的一个矩阵是。前面的系数来写,因此转移矩阵为。,最终的答案矩阵的前一个矩阵为。,因此求斐波那契数列的第。因此由上式可得我们需要用到。来说,经常是一个竖着的。开始的,矩阵里的也是。,现在就是解决如何使得。,所以最终答案矩阵为。
2023-07-11 20:00:43 56
原创 可持久化数据结构
我们若想知道数据集在任意时间的历史状态,“可持续化”提供了一种思想,在每项操作结束后,发生改变:可以存下来数据结构的所有历史版本:当对所存储的信息进行值的修改时,会很麻烦,无法使用核心思想:只记录每一个版本与前一个版本不同的节点。
2023-07-06 20:16:04 201 3
原创 做题技巧或思想
因为第一次差分它们会有一段的值都相等,并且修改时时间复杂度很大,所以我们再进行一次差分,只有。最后统计答案时用两个数组求前缀和,一个用于求出当前数与上一个数的差值,一个用于求出当前数。序列的处理用线段树区间修改+区间/单点查询。这两个位置的值改变了,可以。二分值,大于等于它的为。步,这个长度的区间的。步,这个长度的区间的。先将问题简单化,变为。
2023-05-23 19:23:44 31 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人