摘要: 01 背包是一个很朴素的问题:给一批物品,每个物品有重量和价值,背包容量有限,每个物品只能选或不选,问怎么让总价值最大。设第 \(i\) 个物品的重量为 \(w_i\),价值为 \(v_i\),容量为 \(W\)。目标是在 \(\sum w_i x_i \le W\) 且 \(x_i \in {0, 阅读全文
posted @ 2026-06-27 20:58 Ofnoname 阅读(2) 评论(0) 推荐(0)
摘要: 旅行商问题(TSP):给定一组城市和两两之间的距离,找一条最短回路,经过每个城市恰好一次,最后回到起点。这是一个经典的 NP 完全问题。路径太多,所以暴力搜不过来,而这只是问题的一部分。 TSP 还在几个问题的交界处:最短路、生成树、匹配、欧拉回路、线性规划松弛、近似算法。每个工具都能碰到它的一部分 阅读全文
posted @ 2026-06-27 20:44 Ofnoname 阅读(1) 评论(0) 推荐(0)
摘要: 集合覆盖问题 Set Cover :给定一个全集 \(U\),以及若干个子集 \(S_1, S_2, \dots, S_m\),希望选出尽可能少的子集,使它们的并集覆盖整个 \(U\)。如果每个集合还有费用 \(c_i\),目标就从“集合数量最少”变成“总费用最小”。无权版本可以看作每个集合费用都是 阅读全文
posted @ 2026-06-27 19:14 Ofnoname 阅读(4) 评论(0) 推荐(1)
摘要: 在很多图问题里,边代表一种关系:依赖、冲突、通信、覆盖、监控、约束。Vertex Cover 问的是一个很直接的问题:能不能选出尽量少的一批点,使得每条边至少有一个端点被选中? 给定无向图 \(G=(V,E)\),若点集 \(C\subseteq V\) 满足对任意边 \((u,v)\in E\), 阅读全文
posted @ 2026-06-27 14:29 Ofnoname 阅读(55) 评论(0) 推荐(1)
摘要: 装箱问题是这样一个问题:有 \(n\) 个物品,大小分别为 \(s_1,s_2,\ldots,s_n\),其中 \(0 < s_i \le 1\),每个箱子的容量为 \(1\),目标是把所有物品放进若干箱子,使得每个箱子内物品大小之和不超过 \(1\),并最小化箱子数量。 这个问题很适合讲近似算法。 阅读全文
posted @ 2026-06-26 16:49 Ofnoname 阅读(90) 评论(0) 推荐(0)
摘要: 我们平时说一个算法是 \(O(n)\)、\(O(n \log n)\)、\(O(\sqrt n)\),大多是在一种心照不宣的模型里说的:数组下标、整数加减、比较、取模,都算作一次“基本操作”。这套说法对大多数工程代码很有用。你在 64 位机器上排序一批整数,或者用哈希表查几个 key,通常不需要追问 阅读全文
posted @ 2026-05-29 16:41 Ofnoname 阅读(10) 评论(0) 推荐(0)
摘要: 很多算法的分析都会从一句熟悉的话开始:期望(平均)时间是 ……。这句话好用、干净,也常常是真的。 比如说,随机快速排序的期望时间是 \(O(n \log n)\),哈希表一次查找的期望时间是 \(O(1)\),跳表的期望查找时间是 \(O(\log n)\)。期望复杂度告诉我们,一个涉及随机性的程序 阅读全文
posted @ 2026-05-29 11:27 Ofnoname 阅读(108) 评论(0) 推荐(1)
摘要: 很多随机算法并不是靠“运气好”工作,而是靠候选空间里存在大量可用证据。只要证据足够密集,随机抽样就不再像碰运气,而更像一种低成本的搜索策略。 对于某个输入 \(x\),如果额外给出一段信息 \(w\),我们就能比直接求解更高效地验证某个结论。在计算复杂性中,这类辅助信息通常被称为 witness,也 阅读全文
posted @ 2026-05-28 14:22 Ofnoname 阅读(146) 评论(0) 推荐(1)
摘要: 随机算法并不是把正确性交给运气。更准确地说,它是在设计一种承诺:哪些东西必须保证,哪些东西允许带概率,概率又被限制在什么范围内。 有些随机算法把不确定性放在“答案质量”上。它会在规定时间内结束,但答案可能偶尔出错。另一些随机算法则反过来:答案一旦输出就一定正确,但具体运行多久由随机过程决定。它们被挂 阅读全文
posted @ 2026-05-27 21:52 Ofnoname 阅读(19) 评论(0) 推荐(0)
摘要: 在离散时间的量子演化里,我们经常面对一串小规模 dense 方阵。它们可能来自 Trotter 分解、分段常哈密顿量、控制脉冲序列,或者某个时间网格上的局部传播子。把这些矩阵记作 \(A_0, A_1, \dots, A_{n-1}\),最直接的问题是计算最终连乘 \(A_0 A_1 \cdots 阅读全文
posted @ 2026-05-27 17:07 Ofnoname 阅读(7) 评论(0) 推荐(0)