摘要:
最小生成树专题 要补一下 kruskal重构树 boruvka 严格/非严格次小生成树 无向图中选择若干条边构成一颗树,使得无向图联通,现在要求一颗边权和最小的树,叫做最小生成树 kruskal \(O(mlogm)\) 并查集思想 贪心 边权从小到大排序,然后从小开始合并节点,已经在一个并查集的点 阅读全文
posted @ 2026-01-24 18:27
hicode002
阅读(7)
评论(0)
推荐(0)
摘要:
堆 堆是一棵树 其中有如下性质: 父亲总>=或<=它的所有儿子 \(>=\)的叫大根堆 \(<=\)的叫小根堆 所以根节点总是堆的最小或最大值 堆中任意一颗子树也是堆 二叉堆 如不说明,堆指二叉堆 二叉堆是一颗完全二叉树 所以容易存储 可以用数组 根节点为\(1\) 左子树为\(2i\) 右子树为\ 阅读全文
posted @ 2026-01-24 17:52
hicode002
阅读(6)
评论(0)
推荐(0)
摘要:
汉诺塔问题及其扩展 : 1个基本模型很多扩展 基本模型: \(3\)个柱子,\(A,B,C\),\(a\)上有\(n\)个盘子,从上而下从小到大排好,现在要把所有盘子从\(a\)移到\(c\),要求一次只是移动一个盘子,且大的不能在小的上面,求最小的移动次数 这个看起来无从下手,因为最小似乎要枚举所 阅读全文
posted @ 2026-01-24 17:08
hicode002
阅读(16)
评论(0)
推荐(0)
摘要:
离散化 两种 第二种不理解,实际没什么用 第一种: 离散化是由于数据个数少而数据最大值很大时要将数据直接作为数组下标时空间过大时而为了减小空间占用又不破坏数据关系的一种方法 离散化本质上可以看成是一种 哈希 只不过哈希函数是二分查找变量编号所在下标罢了 哈希值就是变量对应的数组下标 不存在冲突,是完 阅读全文
posted @ 2026-01-24 16:57
hicode002
阅读(13)
评论(0)
推荐(0)
摘要:
枚举排列: 不重集排列: 思路: 用cur表示以cur为当前位置填元素 当cur==n时排列生成完成,输出 然后枚举b数组,尝试在cur上填每一个数 填之前检查一下当前要填的数与a数组之前的数是否相同,不相同代表排列合法,继续搜索 #include<iostream> #include<cstdio 阅读全文
posted @ 2026-01-24 16:11
hicode002
阅读(4)
评论(0)
推荐(0)
摘要:
dp: dp的策略: 1.设计状态 状态设计原则: 要把变量与待求解的东西紧密结合起来 比如说 lis: 最长递增子序列的长度,(不一定连续) 如果设计状态为1~i中最长递增子序列的长度,那么转移有 f(i)=max(f(i-1),以i为结尾的最长递增子序列的长度) 难以转移 但是如果我设以i为结尾 阅读全文
posted @ 2026-01-24 16:05
hicode002
阅读(4)
评论(0)
推荐(0)
摘要:
位运算及其技巧 1.补码: 原码为二进制数前带一个符号位 负数为1 正数为0 如110 -2 010 -- > 2 正数的反码与原码相同 负数的反码是除符号位外原码的每一位都取反(1变0 0变1) 正数的补码与原码相同 负数的补码是反码+1 符号位也随之变化 当超过其最大位数时左边多余的位数舍去 如 阅读全文
posted @ 2026-01-24 16:03
hicode002
阅读(20)
评论(0)
推荐(0)
摘要:
先把之前的搬过来,逆元 exgcd 数论分块 同余方程 crt excrt 欧拉定理 扩展欧拉定理 费马小定理 快速幂 威尔逊定理 卢卡斯定理 扩展卢卡斯定理 BSGS 逆元 O(1)求逆元两种方法 二次剩余之类的还没学 素数判定 各种筛法 积性函数 素数 Miller-Rabin Pollard- 阅读全文
posted @ 2026-01-24 15:42
hicode002
阅读(17)
评论(0)
推荐(0)
摘要:
图论: 图:点用边连起来叫做图 严格说,图是数据结构,定义为:graph=(V,E) V是一个非空有限集合,代表节点,E代表边集(V非空,意味着图中最少有1个节点,但是E可以空,说明图可以没有边) 有向图:图的边有方向,只能按箭头方向从一点到另一点 无向图:图的边没有方向,可以双向。 节点的度 无向 阅读全文
posted @ 2026-01-24 15:29
hicode002
阅读(8)
评论(0)
推荐(0)
摘要:
双栈模拟队列 队列支持队尾入队,队头出队,队头出队时可以访问队头 两个栈a,b 当入队时把元素入栈a 当出队时检查b中元素 若b为空则把a依次出栈并且入栈b(出栈一个就入栈b一个) 若b非空则出栈b,出栈b前的栈顶元素即为队首元素 正确性: 出队时相当于把a栈顺序倒过来,使得先入栈的在栈顶,此时栈顶 阅读全文
posted @ 2026-01-24 15:21
hicode002
阅读(7)
评论(0)
推荐(0)
摘要:
图的欧拉道路与回路(不重复的走过所有边而不是点) : 定理1:存在欧拉路的条件:图是连通的,有且只有2个奇点。 定理2:存在欧拉回路的条件:图是连通的,有0个奇点。 前提必须连通 并且是无向图 对于有向图,有: 图是联通的(忽略边的方向) 当所有节点入度等于出度时存在欧拉回路 当只有一个节点出度等于 阅读全文
posted @ 2026-01-24 15:05
hicode002
阅读(7)
评论(0)
推荐(0)
摘要:
无向图的对称性:g[i][j]=g[j][i],开两倍数组!!重要! 邻接矩阵的建立: 初始化正无穷大时若为int数组memset(g,0x7f,sizeof g) 若为0则memset(g,0,sizeof g) 若为很小数则为memset(g,0xaf,sizeof g) double数组时me 阅读全文
posted @ 2026-01-24 14:48
hicode002
阅读(11)
评论(0)
推荐(0)
摘要:
准备复建之前学的算法/数据结构 目的:首先是一些面试要求手撕KMP 红黑树 B树 跳表这些 然后一些基础算法二分 并查集 树状数组 线段树 ST表 LCA 各种堆什么的有点忘了 然后学一些新的比如网络流 图的匹配 prufer Matrix-tree LGV以及一些计数相关的这些,然后DS上面一些技 阅读全文
posted @ 2026-01-24 11:51
hicode002
阅读(12)
评论(0)
推荐(0)
摘要:
突然大概明白了为什么这么失败了...其实我对OI/计算机的热情远没有那么高,至少不是那种特别喜欢写程序写项目的人,之前也只是用E语言/Python写各种小工具/爬虫,还研究过一段时间游戏开发(当然小学时候是不会英语用的中文编程),甚至那时候就会多线程并发(当然还是中文语言)那时候的确对写程序有很强的 阅读全文
posted @ 2026-01-24 11:45
hicode002
阅读(426)
评论(0)
推荐(2)

浙公网安备 33010602011771号