![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 79
菜小田
这个作者很懒,什么都没留下…
展开
-
【算法】动态规划
讲之前先举一个经典贪心例题此题可以用贪心从面值高的硬币遍历,但只适合一些差距大的面值,若存在更多面值,例如。原创 2023-05-02 16:41:34 · 136 阅读 · 0 评论 -
【算法】线段树
第二次修改[5, 8]不能覆盖结点5,需要再向下搜到结点11:[5, 5],从而破坏了tag[5],此时原tag[5]记录的区间统一修改就不得不往它的子结点传递和执行了,传递后tag[5]失去了用途,需要清空。区间[L, R]是需要更新的区间。(1)左子树递归到结点5,即区间[4, 5],完全包含在[4, 9]内,打标记tag[5] = 3,更新tree[5]为20,不再继续深入;(3)右子树递归到结点6,即区间[6, 8],完全包含在[4, 9]内,打标记tag[6]=3,更新tree[6]为23。原创 2023-05-02 16:38:24 · 239 阅读 · 0 评论 -
【算法】树状数组
动态修改、求区间和:用树状数组树状数组的结构与二叉树相似右边的每个点的值等于其子树的值的和代码中的lowbit的功能:找到x的二进制数的最后一个1从lowbit推出tree[]数组,所有的计算都基于tree[]另m=lowbit(x)定义tree[x]:把a[x]和他前面共m个数 相加例:lowbit(6)=2,有tree[6] = a[5]+a[6]用图来表示:有了tree[],就可以进行基于tree[]的计算。原创 2023-05-02 16:37:32 · 113 阅读 · 1 评论 -
【算法】并查集
查找元素的集,是一个递归的过程,直到元素的值和他的集相等,就找到了根节点的集。对于递归搜索树,情况多种,可能很细长,复杂度O(N),则出现了退化现象。路径压缩可以消除这种复杂的递归模型。初始化数组的元素均为自身索引。近似于创建个体与个体间的联系。若需查找有多少连通子集。原创 2023-05-02 16:35:46 · 117 阅读 · 0 评论