jUicE_g2R
某双流一大学通信与信息工程专业大三在读。研究信号处理,嵌入式与算法。
展开
-
【树上莫队C++】Count on Tree II(欧拉序降维,树链剖分求最近共同祖先LCA)
像 `树` 这种二维的如果可以进行降维(将树转化成链处理)处理的话,也可以使用 `莫队算法` 处理。原创 2023-09-22 00:15:44 · 350 阅读 · 0 评论 -
[高级数据结构C++] 可持久化线段树(查找序列第k小的数)
`线段树`很适合处理这种**区间内的最值或者查询修改问题**!原创 2023-09-14 22:54:01 · 106 阅读 · 0 评论 -
A*算法 解决(有环图)第k短路径长度(C++)
`A*(A-star)算法`是一种静态网路中求解`最短路径`最有效的直接搜索算法。在电子游戏中最主要的应用是寻找地图上两点间的最佳路线。在机器人领域中,`A*算法`常用于**移动机器人路径规划**。原创 2023-09-02 17:43:45 · 196 阅读 · 0 评论 -
Dijkstra算法求解(单源)最短路径(BFS、贪心策略算法C++)
贪心算法的核心:是只管当前最好(局部最优)原创 2023-08-31 21:58:24 · 205 阅读 · 0 评论 -
八数码八位码问题(双向广搜C++)高质量
一个形象的比喻就是从山的两侧同时挖隧道,到两队相遇时隧道打通原创 2023-08-26 20:53:44 · 159 阅读 · 0 评论 -
前缀加与后缀加在循环判断语句的区别
中的在第三段的语句无论如何都是在循环体执行一轮完后才执行的,这时,前后缀逻辑不会影响后一次进入循环的判断。后缀放在while()中,第二次进入循环体判断时为2(–j)&&i>j),先执行左边再执行右边,判断右边的时候j已经减1了,会使用新的i值进行判断。而前缀:第二次进入循环体判断时为2要先加1在执行判断,此时i已经不满足再循环下去的条件,跳出循环。而(j–)会使 j 在整条判断语句判断完后进入判断的执行语段前减1。原创 2023-06-23 00:43:17 · 78 阅读 · 1 评论 -
(不定/定宽)窗口滑动问题
有一个长为 n 的序列 a,以及一个大小为 k 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。先窗口始指针不动,直至窗口尾指针指向的数的sum满足target后,开始移动始指针直到sum不满足条件截止。每次添加新元素时跟队尾比较,如果队尾元素值大于待入队元素,则将对尾元素从队列中弹出,重复此操作,直到。这里求连续k个元素的最大值,选用递减队列,为维持子序列的递减性,后续待加入的元素都要小于尾指针的元素。,所有元素只入队一次,因此它的复杂度也是O(n)的。原创 2023-06-23 00:45:08 · 61 阅读 · 1 评论 -
最大子序和(贪心和动规算法)
局部最优:当前“连续和”,从下一个元素计算“连续和”,因为负数加上下一个元素 “连续和”只会越来越小。全局最优:选取最大“连续和”原创 2023-06-23 00:49:43 · 137 阅读 · 1 评论 -
尺取法(双指针)
i从头扫到尾,j从尾扫到头。原创 2023-06-23 00:50:26 · 42 阅读 · 1 评论 -
二分与三分查找算法
回到数组中,即我们要让第一个子数组尽可能的接近K但不超过K(可以等于,这时这个数组可能就是那个最小化最大值的子数组和了),当再分配一个元素给第一个子数组时,其和超过K,那这个元素我们不分配给它,我们分配给第二个子数组,以此类推。当M>T时,说明有太多的子数组的和接近K,我们可以让K再大一点,以减少M。当M<T时,说明接近K的子数组和太少了,我们应该让K小一点,以来更多的子数组的和接近K。将一个序列{2,2,3,4,5,1}化成3个子序列,每个子序列最少一个元素,使得多每个子序列和的最大值最小。原创 2023-06-23 17:41:46 · 297 阅读 · 1 评论 -
每日一题之贪心算法经典例题
钱币的面额有:100100 元、5050 元、2020 元、55 元、11 元,问如何找零使得所需钱币的数量最少?输出共有 55 行,每一行输出数据输出找零的金额与数量,详情看样例。可能为 00,也能为几百元(别问,问就是来着里微信提现来了)蓝桥商店的老板需要找零 n。在第一行给出测试例个数 N。,代表需要找零的钱数。原创 2023-07-06 17:55:09 · 153 阅读 · 1 评论 -
分治法(c++算法与实际工程演示)
来自(电磁)智能车部分代码。原创 2023-08-12 17:00:28 · 109 阅读 · 1 评论 -
贪心算法(c++)
每一步不考虑对后续的影响,后续步骤也不改变前面步骤原有的选择。作为算法的贪心,就是把整个问题。方案,直到所有步骤结束。原创 2023-08-15 16:09:43 · 53 阅读 · 0 评论 -
层序遍历与BFS广度(宽度)遍历搜索算法(C++)
bfs,层序遍历原创 2023-08-21 11:23:50 · 91 阅读 · 1 评论 -
[高级数据结构C++] 并查集(合并,路径压缩,加权)
主要用于处理一些`不相交集合的合并问题`经典的应用:`连通图`,`最小生成树 Kruskal 算法`,最近公共祖先`LCA算法`原创 2023-09-04 23:40:40 · 270 阅读 · 0 评论 -
[高级数据结构C++] 树状数组(求前缀和,区间和)
原理利用 负数 的补码。原创 2023-09-07 17:31:46 · 224 阅读 · 0 评论 -
[高级数据结构C++] 树状数组 进阶(二维数组维护与区间查询)
函数需要使用到上述最后化出的式子,思想方法照搬。,所框中的矩阵范围所有的数均加delta。,即转化为求前缀和 ∑。这个工具,且需要使用的是。二维数组维护(修改)是下图深蓝色阴影面积。原创 2023-09-07 23:34:06 · 100 阅读 · 0 评论 -
逆序和 (最小反转数)【归并排序解决】
**归并排序** 是将数列进行若等份后,对每一份进行各自排序(升序排列),然后在将份数减少(原来的小份相结合成一个大份)原创 2023-09-09 12:37:22 · 103 阅读 · 0 评论 -
[高级数据结构C++] 树状数组进阶(求逆序对的个数)
1) 逆序处理:从 a[1] 开始。就是 该数为最大数 的逆序对数。就是 该数为最小数 的逆序对数。2)正序处理:从a[5] 开始。将原来的数字变成他们的。原创 2023-09-09 19:38:38 · 99 阅读 · 0 评论 -
[高级数据结构C++] 线段树(区间和的查询与修改)
`线段树` 和 `树状数组` 都是很适合解决**区间问题**的数据结构。原创 2023-09-10 21:53:04 · 302 阅读 · 0 评论 -
论如何优雅地对结构体成员初始化
利用构造函数初始化结构体原创 2023-09-11 00:01:06 · 80 阅读 · 0 评论 -
[高级数据结构C++] 线段树(区间合并)
`线段树` 的**兄弟节点之间有相邻关系**原创 2023-09-11 23:07:10 · 187 阅读 · 0 评论 -
[高级数据结构C++] 线段树的两个冷门算法(先搁置在这里)
在原来的一维树的基础上对。原创 2023-09-12 16:48:10 · 74 阅读 · 0 评论 -
递归(利用栈)的应用
递归的实质就是利用栈原创 2023-09-14 23:06:41 · 41 阅读 · 0 评论 -
【基础莫队算法C++】解决多个区间和问题(使用分块结构)
***莫队算法 = 离线 + 暴力解法 + 分块算法***原创 2023-09-16 00:22:59 · 188 阅读 · 0 评论 -
【带修改的莫队算法C++】单点修改+区间查询(时间戳的使用)
这个操作是第 3 个 ,此时不经干预的话,得到 区间s的结果 是修改后的区间产生的(而题目要求查找的这个 s区间 是修改前的)。这个操作是第 3 个 ,此时不经干预的话,得到 区间s的结果 是修改前的区间产生的(而题目要求查找的这个 s区间 是修改后的)。支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问。对于每一个 Query 的询问,你需要在对应的行中给出一个数字,代表第。,分别代表初始画笔的数量以及墨墨会做的事情的个数。原创 2023-09-17 00:58:13 · 218 阅读 · 0 评论 -
【高级数据结构C++】块状链表——文本编辑器 luogu p4008(指针中 引用& 的使用)
分块使用到的 **数组**结构 可以极大的加速`检索`的效率,使用 **链** 这种结构 进行`插入和删除`等修改操作 就较数组 效率更高,基于这两者各自的优势互补下,这种链表串起来的分块可以结合形成一种 检索很快,同时修改效率也很高的 高级数据结构 :**块状链表**原创 2023-09-23 21:28:36 · 334 阅读 · 0 评论 -
【图论C++】链式前向星(图(树)的存储)
`链式前向星` 较 `领接矩阵`(二维数组)在**空间**上优化了很多原创 2023-09-26 17:22:52 · 1493 阅读 · 0 评论 -
【图论C++】树的重心——教父POJ 3107(链式前向星的使用)
- `树的重心` 适用在 `无根树(一个不含回路的无向图)`- `树的重心` 是 以任意结点 u 为根 计算它最大子树的节点数 $node_n$,如果 `u节点` 的 $node_n$ 最少,则 `u节点` 为 树的重心。原创 2023-09-26 23:36:32 · 961 阅读 · 0 评论 -
【图论C++】树的直径(DFS 与 DP动态规划)
树上 最远的两个节点之间 的距离被称为 **树的直径**,连接这两个点的路径 被称为 **树的最长链**。原创 2023-09-27 23:22:45 · 1372 阅读 · 0 评论 -
【图论C++】Floyd算法(多源最短路径长 及 完整路径)
Floyd暴力算法思路究极像 A* 算法原创 2023-09-29 20:46:23 · 924 阅读 · 0 评论 -
【C++类的继承、父子类】牛顿插值公式求近似值
这样数据已经非常逼近了,可以继续Add数据,使模型更贴合√x函数曲线,减小计算得到值的误差。原创 2023-10-27 01:24:49 · 252 阅读 · 0 评论