一句话
组合计数题里常常数出这样的式子:某些量 d1,…,dn 的“两两配对数”被控制住了,即 ∑Cdi2≤K。可我们想估计的却是总数 D=∑di。中间差的那一步,正是柯西不等式:
∑di2 ≥ n(∑di)2=nD2.
于是 nD2−D≤∑di2−∑di=2∑Cdi2≤2K,解这个关于 D 的二次不等式就得到上界。算两次给出平方和的上界,柯西把它变成总数的上界。 等号要求所有 di 相等——这也告诉我们最好的构造长什么样。
7 × 7 的方格最多填几格而没有矩形
第 1 / 5 步 -
矩形 = 两行共用两列 四个角都填了的矩形,就是某两行在同样的两列上都有格子。所以“无矩形”等价于:任何一对列,至多被一行同时占用。
无矩形⟺每个列对至多被一行用到
-
算两次:数“行里的列对”
-
柯西:从平方和到总数
-
解出上界
-
真的有:法诺平面
先猜后证
5×5 的方格,无矩形,最多能填几格?(先用上面的方法算上界,再到页首去摆。)
格
先选定答案,才能看到结论。
✓ 猜对了!✗ 和你想的不一样——这正是值得停一下的地方。
∑Cri2≤C52=10,柯西给出 5T2−T≤20,即 T2−5T−100≤0,T≤25+425≈12.8,所以 T≤12。
12 能摆出来:五行分别取第 {1,2,3}、{1,4,5}、{2,4}、{3,5}、{2,5} 列。用到的 9 个列对互不相同。这一次各行并不相等(3,3,2,2,2),柯西有一点松弛,但取整把它吸收掉了。
试试在这 12 格之外再填任何一格:一定会造出矩形。
第 1 站 · 图论:没有四边形的图
n 个点的简单图,其中没有长为 4 的圈。最多有几条边?
把“方格的行”换成“顶点”:顶点 v 的度数是 dv,它的邻居两两配对,得到 Cdv2 个“以 v 为中点的折线”。没有四边形,等价于任意两点至多有一个公共邻居,所以
v∑Cdv2≤Cn2,v∑dv=2e.
柯西:∑dv2≥n4e2,于是 n4e2−2e≤n(n−1),解得
e≤4n(1+4n−3).
n=5 时右边约 6.4,所以 e≤6;两个共用一个顶点的三角形(“蝴蝶结”)正好 6 条边、没有四边形。
第 2 站 · 集合族:两两至多一个公共元
9 个人组成若干个 4 人委员会,任何两个委员会至多有一个公共成员。最多能有几个委员会?
这次让人当“行”:第 p 个人参加了 dp 个委员会。他所在的委员会两两配对,配出的委员会对互不重复(否则两个委员会有两个公共成员),所以
p=1∑9Cdp2≤Cm2,p∑dp=4m.
柯西:∑dp2≥916m2,代入得 916m2−4m≤m(m−1),即 7m≤27,m≤3。构造:{1,2,3,4}、{4,5,6,7}、{7,8,9,1}。
三站的骨架完全一样:找出“配对数”的上界(算两次)→ 柯西把平方和换成总数 → 解二次不等式 → 构造验证。
练一练
4×4 的方格中填若干格,使任何矩形的四个角不全被填。最多能填几格?
提示 · 方向列对一共有 C42=6 个。每行用掉几个?
提示 · 方法∑Cri2≤6,再用 ∑ri2≥4T2。
提示 · 第一步4T2−T≤12,即
T2−4T−48≤0,
T≤2+52≈9.2。
完整解答所以 T≤9。构造:四行分别取第 {1,2,3}、{1,4}、{2,4}、{3,4} 列,用到的列对 12,13,23,14,24,34 各一次,共 9 格。答案是 9。
6 个人组成若干个 3 人小组,任何两个小组至多有一个公共成员。最多能有几个小组?
提示 · 方向照搬第 2 站:每个人参加 dp 个小组。
提示 · 方法∑Cdp2≤Cm2,∑dp=3m,柯西 ∑dp2≥69m2。
提示 · 第一步23m2−3m≤m(m−1),化简得 2m≤2。
完整解答所以 m≤4。构造:{1,2,3}、{1,4,5}、{2,4,6}、{3,5,6},任两组恰有一个公共成员。答案是 4。
5 个顶点的简单图中没有长为 4 的圈。最多有几条边?
提示 · 方向没有四边形 ⇔ 任何两个顶点至多有一个公共邻居。
提示 · 方法∑Cdv2≤C52=10,∑dv=2e,再用柯西。
提示 · 第一步54e2−2e≤20,即 2e2−5e−50≤0。
完整解答e≤45+425≈6.4,所以
e≤6。“蝴蝶结”(两个三角形共用一个顶点)有
6 条边、没有四边形。答案是
6。
6×6 的方格中,任何矩形的四个角不全被填。最多能填几格?
提示 · 方向先算上界;构造时想想:上界那一刻各行大约几格?
提示 · 第一步T2−6T−180≤0,
T≤3+189≈16.7,所以
T≤16。
16 格分到
6 行,最平均是
3,3,3,3,2,2,用掉
4×3+2×1=14≤15 个列对,有希望。
完整解答构造:六行取第 {1,2,3}、{1,4,5}、{2,4,6}、{3,5,6}、{1,6}、{2,5} 列。前四行用掉 12 个列对,剩下的 16,25,34 中用了 16 和 25,无一重复,共 16 格。答案是 16。