摘要: 从线段树开始。 线段树(Segment tree)是一种用于存储区间信息的二叉树数据结构,主要被用于高效的处理查询和修改操作。它具有以下特点: 其为一棵满二叉树,每个结点都对应着一段区间,上维护着对应区间的属性。属性可以自定义,但是必须要全面,以便合并子结点、修改和查询时使用。 线段树的核心是递归地 阅读全文
posted @ 2024-12-28 12:17 wusixuan 阅读(180) 评论(0) 推荐(2)
摘要: 以“启发式”来命名的算法有很多,有进阶搜索——启发式搜索,还有一个东西叫做启发式合并,还有一个是树上启发式合并,这两个东西这篇文章都会讲。 引用一句 OIwiki 上面的话: 启发式算法是基于人类的经验和直观感觉,对一些算法的优化。 简称人类智慧乱搞。 启发式合并 其实启发式合并我们以前就学过:在并 阅读全文
posted @ 2025-04-22 12:08 wusixuan 阅读(10) 评论(0) 推荐(0)
摘要: 线性基分成两种,一种是异或线性基,一种是实数线性基。 异或线性基 定义 线性基有着一个奇怪的名字,异或线性基也有着奇怪的定义。 那么异或线性基是啥东西呢? 直接搬定义:线性基是一个数的集合(这就不只是异或线性基了!),并且每一个序列都至少拥有一个线性基。 而且对于异或线性基最重要的:取异或线性基中若 阅读全文
posted @ 2025-04-21 08:07 wusixuan 阅读(6) 评论(0) 推荐(0)
摘要: \(n\) 元一次方程组 使用场景 高斯消元一般是用来求解线性方程组的方法。 线性同余方程组大家都见过,相比线性方程组应该并不陌生。 至于线性方程组,是线性代数中的一个很小的部分。是指类似这样的一个方程组: \[\begin{cases} a_{1, 1} x_1 + a_{1, 2} x_2 + 阅读全文
posted @ 2025-04-19 10:27 wusixuan 阅读(5) 评论(0) 推荐(0)
摘要: SG 理论是博弈论中的另一个知识点,同样只作用于 ICG 游戏。 SG 理论也有地方说是 SG 函数,不过都是一个东西。 书接上回,这一篇我们继续探讨 ICG 游戏,所以请先阅读 博弈游戏学习笔记。 SG 函数用来解决一些很复杂的 ICG 游戏问题。 例如,有一个 ICG 游戏:Alice 和 Bo 阅读全文
posted @ 2025-04-17 10:31 wusixuan 阅读(3) 评论(0) 推荐(0)
摘要: 博弈游戏,也有很多人把它叫做博弈论,但是博弈论的英文确实和 Game 这个词有关,所以也可以说是博弈游戏。 博弈游戏可以看作是一个专门的小领域(例如 数论、图论、或者是概率论),它的板块非常非常大。 所以这篇文章所写的可能只是很小的一部分,这里先开一个坑,我以后再来填写。 如果我没有听错的话,博弈游 阅读全文
posted @ 2025-04-15 11:52 wusixuan 阅读(295) 评论(0) 推荐(0)
摘要: 余同最短路。 最短路我们学过,那同余最短路又是什么东西呢??可以用来解决什么问题??往下看。 我们从一道题来得到这个算法的思路。 T494899 硬币问题 正宗的同余最短路 有 \(n\) 种面值的硬币(每种有无限枚),问使用这些硬币能够凑出 \([1,m]\) 的多少种金额。\(n \le 100 阅读全文
posted @ 2025-04-11 15:17 wusixuan 阅读(86) 评论(0) 推荐(0)
摘要: 2-SAT 2-SAT 是一种满足性问题,其中 SAT 代表 satisfiability。 也就是说有一些限制,需要构造出答案使得所有的限制都满足。可能无解。 结合一下生活情景,你是否在逻辑推理的时候遇到这种题: 有 A,B,C,D,E,F,G 七个人,每个人要么去吃饭,要么就不去。请根据一下限制 阅读全文
posted @ 2025-04-07 14:08 wusixuan 阅读(7) 评论(0) 推荐(0)
摘要: 反悔贪心 贪心是指直接选择局部最优解,不需要考虑之后的影响。 而反悔贪心是在贪心上面加了一个“反悔”的操作,于是又可以撤销之前的“鲁莽行动”,让整个的选择稍微变得“理智一些”。 于是,我个人理解,反悔贪心是对于某些直接贪心无法解决的问题的一种“救场策略”。当然如果反悔贪心都贪不动当我没说。 不妨先来 阅读全文
posted @ 2025-04-06 09:21 wusixuan 阅读(4) 评论(0) 推荐(0)
摘要: 一道圆方树恶心题,*3200,不知道为什么不评黑。 这道题很容易直接想到圆方树:因为两个操作如果在树上,都需要树链剖分 + 线段树维护。而将这么一个普通图转化为一棵树,也就只有圆方树这种形式了。 于是就可以综合使用圆方树 + 线段树 + 树链剖分轻松解决了这道题,码长达到了 3.95KB,恐怖。 ` 阅读全文
posted @ 2025-04-04 14:47 wusixuan 阅读(4) 评论(0) 推荐(0)
摘要: 首先,圆方树和 Kruskal 重构树差不多,都是将一个无向图转化为了一个特殊性质的树,然后在上面跑各种乱七八糟的算法:LCA、DP、甚至树链剖分…… 但是,圆方树和 Kruskal 重构树所基于的东西不同:Kruskal 重构树是基于的最小生成树,而圆方树是基于的点双连通分量。 都是属于一个图重构 阅读全文
posted @ 2025-04-02 10:46 wusixuan 阅读(8) 评论(0) 推荐(0)