<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Combinatorics on CS Theorems</title><link>https://cs.lozic.me/areas/combinatorics/</link><description>Recent content in Combinatorics on CS Theorems</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 04 Dec 2026 12:00:00 +0100</lastBuildDate><atom:link href="https://cs.lozic.me/areas/combinatorics/index.xml" rel="self" type="application/rss+xml"/><item><title>Adversary Arguments</title><link>https://cs.lozic.me/posts/t005-adversary-arguments/</link><pubDate>Fri, 04 Dec 2026 12:00:00 +0100</pubDate><guid>https://cs.lozic.me/posts/t005-adversary-arguments/</guid><description>&lt;h2 id="symptom"&gt;Symptom&lt;/h2&gt;
&lt;p&gt;You need the largest and second-largest element of an array. The obvious way is
two passes: $n-1$ comparisons for the max, then $n-2$ for the max of the rest.
That is $2n - 3$.&lt;/p&gt;</description></item><item><title>The Omega(n log n) Comparison-Sort Bound</title><link>https://cs.lozic.me/posts/t003-comparison-sort-lower-bound/</link><pubDate>Fri, 20 Nov 2026 12:00:00 +0100</pubDate><guid>https://cs.lozic.me/posts/t003-comparison-sort-lower-bound/</guid><description>&lt;h2 id="symptom"&gt;Symptom&lt;/h2&gt;
&lt;p&gt;Every general-purpose sort in every standard library is $O(n \log n)$.
Timsort, introsort, pdqsort, merge sort, heapsort. Decades of work by extremely
motivated people, an enormous amount of money riding on it, and they all land on
the same exponent.&lt;/p&gt;</description></item><item><title>No Universal Lossless Compressor</title><link>https://cs.lozic.me/posts/t004-no-universal-lossless-compressor/</link><pubDate>Fri, 04 Sep 2026 12:00:00 +0200</pubDate><guid>https://cs.lozic.me/posts/t004-no-universal-lossless-compressor/</guid><description>&lt;h2 id="symptom"&gt;Symptom&lt;/h2&gt;
&lt;p&gt;Someone sends you a pitch deck. The claim is a compression algorithm that
reduces &lt;em&gt;any&lt;/em&gt; file by a guaranteed ratio, and — this is always the tell — that
it can be applied repeatedly. Four gigabytes down to one, then one down to two
fifty, and so on until the whole film is a few hundred bytes and a clever
decoder.&lt;/p&gt;</description></item><item><title>The Pigeonhole Principle</title><link>https://cs.lozic.me/posts/t001-pigeonhole-principle/</link><pubDate>Fri, 28 Aug 2026 12:00:00 +0200</pubDate><guid>https://cs.lozic.me/posts/t001-pigeonhole-principle/</guid><description>&lt;h2 id="symptom"&gt;Symptom&lt;/h2&gt;
&lt;p&gt;You are asked to build a cache key. You have a 64-bit hash, and someone on the
team says: &amp;ldquo;collisions are basically impossible, there are eighteen quintillion
values.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Or: your service assigns short IDs to uploads, six characters of base-36, and
you are wondering when you need to worry.&lt;/p&gt;</description></item></channel></rss>