【习题选讲】一些「有趣」的计数题

都是 2019 暑期训练题~

燕归巢(swalllow)


枚举不同形态的树显然不可能,所以我们可以考虑一条边的贡献(这在之后的计数题是很常用的技巧,可以说是套路了,一定要掌握!

先将结点分为左右两个集合,枚举左边集合点数 i,那么右边集合点数则为 n - i;

选择左边点集共有 C(n - 1, i - 1) 种方法(注意要减一!因为连接两个集合的边,也就是被考虑贡献的边,它的一端是不被计入的);

左边形成的树有 i ^ {i - 2} 种形态,右边形成的树有 (n - i) ^ {n - i - 2} 种形态;

选择连接左集合和右集合的边 共有 i(n - i) 种方法;

选择包含这条边的路径 共有 i(n - i) 种方法。

所以就是:

$\sum\limits_{i = 1}^nC(n - 1, i - 1) i^{i - 2} (n - i)^{n - i - 2} i (n - i) i (n - i)$

头皮屑(Venus)


(有趣的标题

实质是数论题。考试时找到了性质:

  1. 至少一个是质数且至少一个数 > n / 2,无边相连,为 0
  2. gcd > 1,有直接边,为 1
  3. 互质,最小质因数之和 <= n,为 2
  4. 互质,两个数都 <= n / 2,为 3

我们在讨论中忽略数字 1。

4)直接用总边数减去 0)1)2)就好了。

建议看 CF 原题解:传送门

坐等memset0(memset)


非常妙的 CF 题!

我们发现,f(l, r) = l ~ r 的点数 - l ~ r 的边数。

那么我们可以拆开 sigma,计算每一个点的贡献和每一条边的贡献,就可以 AC。