前缀和
文章平均质量分 61
lenyan~
在努力刷算法中,希望可以和大家多多交流。
展开
-
蓝桥杯 第3220题 小蓝学位运算 C++ Java Python
计算给定数组中子数组异或结果不为零的子数组个数。它通过计算数组的前缀异或和,并使用两层循环来遍历所有可能的子数组,计算其异或和,如果为零则输出零。否则,累乘所有不为零的异或和,最终输出结果。程序的空间复杂度取决于数组大小和其他常量,因此为 O(n)。两层循环导致时间复杂度为 O(n^2)。原创 2024-03-21 07:30:00 · 158 阅读 · 0 评论 -
蓝桥杯 第3217题 简单的异或难题 C++ Java Python
预处理数组的时间复杂度为 O(n),每个查询的时间复杂度为 O(1),因此总体时间复杂度为 O(n + m),其中 n 是数组长度,m 是查询次数。计算给定数组中子数组异或和的问题。它采用了前缀异或的方法来预处理数组,然后对于每个查询,通过异或操作计算子数组的异或和。程序的空间复杂度取决于数组大小和其他常量,因此为 O(n)。原创 2024-03-21 07:00:00 · 498 阅读 · 0 评论 -
蓝桥杯 - 大石头的搬运工 C++ 前缀和 算法 附Java python
这段代码的目标是计算给定点集的最小总移动成本,使得所有点都在同一直线上。它通过计算每个点左边和右边的移动成本,然后在所有可能的分割点中选择最小成本。时间复杂度: 排序所需的时间复杂度为 O(nlogn),计算移动成本的过程需要线性时间,因此总体时间复杂度为 O(nlogn)。空间复杂度: 程序的空间复杂度主要取决于数组。和其他常量,因此为 O(n)。原创 2024-03-12 20:00:00 · 420 阅读 · 0 评论