摘要: 快速排序 1.朴素版 无论是朴素版还是优化版,其实算法思想都是一样的 假设从小到大排序 按照分治三部曲: 划分问题: 将数组分成两部分,要求左半部分所有元素一定要小于等于右部分所有元素 递归求解: 递归排序这两个部分 合并问题: 无需合并,因为左边有序,左边小于等于右边,右边有序 可见最难的是划分问 阅读全文
posted @ 2026-01-25 11:30 sakrain 阅读(17) 评论(0) 推荐(0)
摘要: 最小生成树专题 要补一下 kruskal重构树 boruvka 严格/非严格次小生成树 无向图中选择若干条边构成一颗树,使得无向图联通,现在要求一颗边权和最小的树,叫做最小生成树 kruskal \(O(mlogm)\) 并查集思想 贪心 边权从小到大排序,然后从小开始合并节点,已经在一个并查集的点 阅读全文
posted @ 2026-01-24 18:27 sakrain 阅读(15) 评论(0) 推荐(0)
摘要: 堆 堆是一棵树 其中有如下性质: 父亲总>=或<=它的所有儿子 \(>=\)的叫大根堆 \(<=\)的叫小根堆 所以根节点总是堆的最小或最大值 堆中任意一颗子树也是堆 二叉堆 如不说明,堆指二叉堆 二叉堆是一颗完全二叉树 所以容易存储 可以用数组 根节点为\(1\) 左子树为\(2i\) 右子树为\ 阅读全文
posted @ 2026-01-24 17:52 sakrain 阅读(27) 评论(0) 推荐(0)
摘要: 汉诺塔问题及其扩展 : 1个基本模型很多扩展 基本模型: \(3\)个柱子,\(A,B,C\),\(a\)上有\(n\)个盘子,从上而下从小到大排好,现在要把所有盘子从\(a\)移到\(c\),要求一次只是移动一个盘子,且大的不能在小的上面,求最小的移动次数 这个看起来无从下手,因为最小似乎要枚举所 阅读全文
posted @ 2026-01-24 17:08 sakrain 阅读(61) 评论(0) 推荐(0)
摘要: 离散化 两种 第二种不理解,实际没什么用 第一种: 离散化是由于数据个数少而数据最大值很大时要将数据直接作为数组下标时空间过大时而为了减小空间占用又不破坏数据关系的一种方法 离散化本质上可以看成是一种 哈希 只不过哈希函数是二分查找变量编号所在下标罢了 哈希值就是变量对应的数组下标 不存在冲突,是完 阅读全文
posted @ 2026-01-24 16:57 sakrain 阅读(42) 评论(0) 推荐(0)
摘要: 枚举排列: 不重集排列: 思路: 用cur表示以cur为当前位置填元素 当cur==n时排列生成完成,输出 然后枚举b数组,尝试在cur上填每一个数 填之前检查一下当前要填的数与a数组之前的数是否相同,不相同代表排列合法,继续搜索 #include<iostream> #include<cstdio 阅读全文
posted @ 2026-01-24 16:11 sakrain 阅读(24) 评论(0) 推荐(0)
摘要: dp: dp的策略: 1.设计状态 状态设计原则: 要把变量与待求解的东西紧密结合起来 比如说 lis: 最长递增子序列的长度,(不一定连续) 如果设计状态为1~i中最长递增子序列的长度,那么转移有 f(i)=max(f(i-1),以i为结尾的最长递增子序列的长度) 难以转移 但是如果我设以i为结尾 阅读全文
posted @ 2026-01-24 16:05 sakrain 阅读(14) 评论(0) 推荐(0)
摘要: 位运算及其技巧 1.补码: 原码为二进制数前带一个符号位 负数为1 正数为0 如110 -2 010 -- > 2 正数的反码与原码相同 负数的反码是除符号位外原码的每一位都取反(1变0 0变1) 正数的补码与原码相同 负数的补码是反码+1 符号位也随之变化 当超过其最大位数时左边多余的位数舍去 如 阅读全文
posted @ 2026-01-24 16:03 sakrain 阅读(40) 评论(0) 推荐(0)
摘要: 先把之前的搬过来,逆元 exgcd 数论分块 同余方程 crt excrt 欧拉定理 扩展欧拉定理 费马小定理 快速幂 威尔逊定理 卢卡斯定理 扩展卢卡斯定理 BSGS 逆元 O(1)求逆元两种方法 二次剩余之类的还没学 素数判定 各种筛法 积性函数 素数 Miller-Rabin Pollard- 阅读全文
posted @ 2026-01-24 15:42 sakrain 阅读(41) 评论(0) 推荐(0)
摘要: 图论: 图:点用边连起来叫做图 严格说,图是数据结构,定义为:graph=(V,E) V是一个非空有限集合,代表节点,E代表边集(V非空,意味着图中最少有1个节点,但是E可以空,说明图可以没有边) 有向图:图的边有方向,只能按箭头方向从一点到另一点 无向图:图的边没有方向,可以双向。 节点的度 无向 阅读全文
posted @ 2026-01-24 15:29 sakrain 阅读(33) 评论(0) 推荐(0)