<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>算法 on Jasper</title><link>https://jasper-aa64.github.io/zh/algo/</link><description>Recent content in 算法 on Jasper</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 05 Nov 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jasper-aa64.github.io/zh/algo/index.xml" rel="self" type="application/rss+xml"/><item><title>A1：复杂度、二分、双指针、前缀和</title><link>https://jasper-aa64.github.io/zh/algo/a1-complexity-binary-search-two-pointers-prefix-sums/</link><pubDate>Thu, 29 Oct 2026 00:00:00 +0000</pubDate><guid>https://jasper-aa64.github.io/zh/algo/a1-complexity-binary-search-two-pointers-prefix-sums/</guid><description>&lt;p&gt;这一轮的四样东西都在数组上做查询，目标都是把暴力的 $O(n^2)$ 降下来。降得下来，靠的是两种性质：一种是单调性（二分、双指针），一种是能相减的累计量（前缀和、差分）。复杂度放在最前面，因为它决定一道题该往哪个方向想。&lt;/p&gt;</description></item><item><title>A2（上）：栈、单调栈、堆</title><link>https://jasper-aa64.github.io/zh/algo/a2-stack-monotonic-stack-heap/</link><pubDate>Thu, 05 Nov 2026 00:00:00 +0000</pubDate><guid>https://jasper-aa64.github.io/zh/algo/a2-stack-monotonic-stack-heap/</guid><description>&lt;p&gt;这一轮的三样东西都在维护一组候选，每一步取出最该处理的那一个。&lt;strong&gt;栈按到达顺序取最近的；单调栈在栈的基础上，把以后永远用不上的候选提前扔掉；堆按大小取最大或最小的。&lt;/strong&gt; 栈和单调栈每个元素只进出一次，总共 $O(n)$；堆的插入和取出是 $O(\log n)$。哈希表、排序与贪心、位运算放在 A2 的下半。&lt;/p&gt;</description></item><item><title>C0：赛场上的数学</title><link>https://jasper-aa64.github.io/zh/algo/c0-contest-math-overview/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://jasper-aa64.github.io/zh/algo/c0-contest-math-overview/</guid><description>&lt;p&gt;比赛后半段的数学题，难点很少在定理本身：定理大多能背下来，卡住的地方是看不出这道题该用哪一个，或者看出来了却推不到能写代码的那一步。所以这篇不按定理排，按赛场上的动作排：先讲一道数学题拿到手怎么走（第 1 节），再分数论、组合计数、线性代数三块，每样东西都讲它解决什么、题面上什么信号该想到它、式子怎么推出来（第 2 到 4 节），最后从题面开始完整写三道题（第 5 节）。&lt;/p&gt;</description></item><item><title>L2：线性基</title><link>https://jasper-aa64.github.io/zh/algo/l2-xor-basis/</link><pubDate>Mon, 02 Nov 2026 00:00:00 +0000</pubDate><guid>https://jasper-aa64.github.io/zh/algo/l2-xor-basis/</guid><description>&lt;p&gt;给 $n$ 个数，从中任选一些异或起来，最大能得到多少？$n = 50$ 时子集有 $2^{50}$ 个，枚举不动。可是这些子集的异或值里有大量重复：$a$、$b$、$a \oplus b$ 三个数，任选子集能得到的值和只用 $a$、$b$ 时一模一样，第三个数是多余的。把多余的数一个个去掉，剩下的数最多 60 个（每个数 60 位），能异或出的值却一个不少。剩下的这组数就是&lt;strong&gt;线性基&lt;/strong&gt;。要说清楚“多余”是什么意思、为什么最多剩 60 个，需要把异或放进线性代数里看。&lt;/p&gt;</description></item></channel></rss>