我只讲语法,可能没那么原理。 数组 你之前开的变量都是代表一个数,一个字符(好像按顺序你还没接触)。 接下来重磅推出数组!你就可以一下开n个变量()。 声明 int a;//这是一个整型 int a[100];//这是100个整型 访问 int a[100]; a[1]=114514;//给数组第
前言 线段树合并是一种可以在 O(n\log{n}) 的时间复杂度内对多颗线段树的信息进行合并处理的操作,一般情况下用于对权值线段树进行合并(根据其信息可合并的性质)。 前置知识 线段树 权值线段树并且会动态开点 (这里直接贴了 BFqwq 的洛谷日报,拜谢喵) 最近公共祖先 (会用一般操作求就行,
排序加背包 题目中最核心的条件: \max_{i \in S} a_i \geq \sum_{i \in S} b_i 其中 \max_{i \in S} a_i 这个条件,我们可以考虑对所有元素按 a 进行从小到大排序。 这样做的好处: 设当前扫的元素的 a 值为 a_i。 此时 a_i 一定是在
2025.3.29 修正一处错别字。 树链剖分求 LCA 前言 树剖求 LCA 的基本思想是将树按一定方式剖分成链,随后便可以在链上进行快速操作求得 LCA,单次求解的时间复杂度在 O(\log{n})。 树剖基本内容 在讲解如何进行树剖求 LCA 前,我们需要先了解树剖的一些相关定义以及性质(有过