
算法
陈进士学习
这个作者很懒,什么都没留下…
展开
-
P3373 【模板】线段树 2(多lzay标记)
xx。原创 2024-02-04 16:59:59 · 1002 阅读 · 0 评论 -
【模板】线段树 1(lazy)
k。原创 2024-02-04 10:58:40 · 959 阅读 · 0 评论 -
【模板】ST 表
这是一道 ST 表经典题——静态区间最大值O1函数返回值为读入的第一个整数。原创 2024-02-03 14:10:41 · 1090 阅读 · 0 评论 -
KMP算法c++模板
【代码】KMP算法c++模板。原创 2023-10-07 20:35:14 · 84 阅读 · 0 评论 -
试除法分解质因数--模板
获取所有质因数和次数,时间复杂度。原创 2023-09-24 18:25:53 · 108 阅读 · 0 评论 -
线性筛素数(欧拉筛)
3. 然后遍历素数数组中的每个素数 `primes[j]`,将 `i * primes[j]` 标记为非素数(合数),即将 `is_prime[i * primes[j]]` 设为 `false`。同时,如果 `i` 能整除 `primes[j]`,则停止遍历,因为后续的 `i * primes[j]` 已经被其他素数筛选过。2. 从2开始遍历到n,如果当前数字 i 是素数(即 `is_prime[i]` 为 `true`),则将其加入素数数组。原创 2023-09-21 18:05:46 · 975 阅读 · 0 评论 -
最小生成树笔记(Prim算法&&Kruskal算法)
最小生成树算法的目标是找到满足上述条件的最优解,常用的算法包括。这些算法可以在连通无向图中找到最小生成树,并且在不同应用中具有重要的应用价值,如网络设计、电路布线、城市规划等。原创 2023-08-07 21:04:17 · 171 阅读 · 0 评论 -
约数个数和欧拉函数
一个数等于它的质因子的c次方相乘,那么约数个数为所有的次数分别+1再相乘。原创 2023-08-07 11:16:29 · 112 阅读 · 0 评论 -
图的传递闭包---C++
【代码】图的传递闭包---C++原创 2023-08-07 10:18:23 · 197 阅读 · 0 评论 -
二分图笔记
【代码】二分图笔记。原创 2023-08-05 08:27:39 · 203 阅读 · 0 评论 -
python读取json文件
【代码】python读取json文件。原创 2023-07-27 18:08:43 · 330 阅读 · 0 评论 -
python列表和字符串之间的转换
【代码】python列表和字符串之间的转换。原创 2023-07-27 18:05:23 · 115 阅读 · 0 评论 -
树状数组笔记
例,x = 8(1000),则 k 为 3,C[x] 为2^3 = 8 个单位长度的总和。C[x] 为以 x 结尾的,2^k 个单位长度的总和(k为x右侧 0 的个数)lowbit函数:求某二进制从右侧往左侧数,第一个1及其后面的0组成的数。树状数组:修改某点O(logn),求区间O(logn)前缀和:修改某点O(n),求区间O(1)数组:修改某点O(1),求区间O(n)查询区间 [a,b] 的和。原创 2023-07-25 18:06:04 · 213 阅读 · 0 评论 -
关于scanf和printf的一些问题&&EOF和~的问题
标准输入流(stdin)是一个特殊的文件流,用于从终端(或重定向的文件)接收输入。的返回值可以用于错误处理或判断输入输出是否成功,但在实际编程中,返回值并不是主要用于这些目的。更常见的是根据返回值来判断输入是否符合预期,以便进行相应的处理。这两个函数是标准输入输出库中的函数,它们在使用时不返回具体的值,而是通过输入输出参数来完成相应的功能。,即成功匹配并赋值的输入项的个数。函数成功读取输入并赋值给参数时,返回值大于0,表示成功读取的参数数量。来实现多组输入的读取。函数的返回值表示成功读取和赋值的参数数量。原创 2023-06-08 22:09:05 · 654 阅读 · 0 评论 -
C++ auto遍历无法直接修改map的数据
因此,使用范围循环时,迭代器的类型会自动推导为。这意味着你无法通过该迭代器直接修改。中的值,可以改用普通的迭代器形式,例如使用。形式的范围循环,并将迭代器声明为引用类型(这种范围循环形式时,实际上是使用了。迭代器,从而无法直接修改值。函数返回的迭代器,而对于。范围循环使用的是容器的。的迭代器循环,或者使用。原创 2023-06-07 15:19:29 · 1555 阅读 · 1 评论 -
手写堆&&priority_queue优先队列
priority_queue 也没有迭代器,因此访问元素的唯一方式是遍历容器,通过不断移除访问过的元素,去访问下一个元素。3. 如果数据类型比较复杂,建议优先队列,如Dijkstra堆优化等。2. 优先队列相对数组模拟速度要慢一些。,所以如果有以上需求需要手写堆。原创 2023-05-02 16:16:54 · 1025 阅读 · 0 评论 -
最长上升子序列(线性DP)
【代码】最长上升子序列(线性DP)原创 2023-05-02 11:11:12 · 217 阅读 · 0 评论 -
滑动窗口&&例题
滑动窗口算法的时间复杂度通常是 O(n),相对于暴力枚举的时间复杂度 O(n^2) 有很大的优化,可以解决一些较为复杂的问题,如最小/最大子数组/子串和、最长/最短连续子序列等。维护一个窗口,窗口大小固定,通过调整窗口的起始位置和结束位置,来求解问题。:在一个序列中找到一个子序列,该子序列满足一定的约束条件,同时该子序列在所有满足条件的子序列中,满足一定的优化目标。你的任务是确定滑动窗口位于每个位置时,窗口中的最大值和最小值。有一个大小为 k 的滑动窗口,它从数组的最左边移动到最右边。原创 2023-05-01 19:50:02 · 650 阅读 · 0 评论 -
试除法判定质数
【代码】试除法判定质数。原创 2023-04-29 22:00:42 · 230 阅读 · 0 评论 -
AcWing 853. 有边数限制的最短路
请你求出从 1 号点到 n 号点的最多经过 k 条边的最短距离,如果无法从 1 号点走到 n 号点,输出。接下来 m 行,每行包含三个整数 x,y,,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。输出一个整数,表示从 11 号点到 nn 号点的最多经过 kk 条边的最短距离。给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,任意边长的绝对值不超过 10000。如果不存在满足条件的路径,则输出。第一行包含三个整数 n,m,k。点的编号为 1∼n。原创 2023-04-29 09:51:12 · 127 阅读 · 0 评论 -
AcWing 849. Dijkstra求最短路 I &&II
接下来 mm 行每行包含三个整数 x,y,zx,y,z,表示存在一条从点 xx 到点 yy 的有向边,边长为 zz。请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为正值。输出一个整数,表示 1 号点到 n 号点的最短距离。第一行包含整数 nn 和 mm。图中涉及边长均不超过10000。如果路径不存在,则输出 −1。转载 2023-04-29 08:09:06 · 140 阅读 · 0 评论 -
floyd算法 O(n^3)
需要注意循环顺序不能变:第一层枚举中间点,第二层和第三层枚举起点和终点。循环结束之后 d[i][j]存储的就是点 i 到点 j 的最短距离。标准弗洛伊德算法,三重循环。原创 2023-04-28 18:02:24 · 252 阅读 · 0 评论 -
C++ unique函数
此函数将序列相邻的相同元素“删除”,并不是真正的删除,而是将后面不重复的元素覆盖这个重复元素,形成一个前面不重复、后面为剩余数字的序列,并且返回剩余序列的第一个元素迭代器。所以,可用此函数配合erase函数,删除某序列的重复元素。原创 2023-04-25 19:20:42 · 199 阅读 · 0 评论 -
lowbit
lowbit用来计算二进制数,从右往左数第一个1与其后面的0组成的数。原创 2023-04-25 19:10:12 · 176 阅读 · 0 评论 -
AcWing区间合并
例如:[1,3][1,3] 和 [2,6][2,6] 可以合并为一个区间 [1,6][1,6]。贪心,按照左端点、右端点的顺序排序,然后遍历所有区间,维护每段区间的右端点即可。给定 nn 个区间 [li,ri][li,ri],要求合并所有有交集的区间。接下来 nn 行,每行包含两个整数 ll 和 rr。共一行,包含一个整数,表示合并区间完成后的区间个数。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。第一行包含整数 nn。原创 2023-04-24 22:53:18 · 132 阅读 · 0 评论 -
二分法模板和入门题(数的范围&&数的三次方根)
第二行包含 nn 个整数(均在 1∼100001∼10000 范围内),表示完整数组。对于每个查询,返回一个元素 kk 的起始位置和终止位置(位置从 00 开始计数)。给定一个按照升序排列的长度为 nn 的整数数组,以及 qq 个查询。共 qq 行,每行包含两个整数,表示所求元素的起始位置和终止位置。接下来 qq 行,每行包含一个整数 kk,表示一个询问元素。第一行包含整数 nn 和 qq,表示数组长度和询问个数。共一行,包含一个浮点数,表示问题的解。共一行,包含一个浮点数 nn。原创 2023-04-24 21:17:27 · 445 阅读 · 0 评论