202508 组合计数专题 笔记
总结:放宽限制到好算的地步,再容斥等减去不符合题意的情况。
1. P3862 数圈
题目描述的
组成答案的圈有两部分,一部分是完全图中的圈,另一部分是经过特殊点的。
经过特殊点的这一部分,相当于在完全图中选两个点,特殊点再连上这两个点。此时就是要计算这两个点间的路径方案数。
根据完全图的性质,选择哪两个点对路径的方案数没有影响,所以设
每当添加一个点(
完全图中的可以设
每当添加一个点(
最后的答案就是
时间复杂度
注意到一组数据中
时间复杂度
2. P3214 [HNOI2011] 卡农
题目要求对同种音乐去重,这相当于多了一个限制,考虑去掉这个限制,最后答案除以
考虑 DP,设
出现的音阶次数都是偶数次。
每个片段都不为空。
没有两个相同的片段。
考虑抛弃后两种限制,用第一种限制进行计数,那只需要任意构造出
接下来考虑去除不符合第二种限制的情况,这说明
最后考虑限制三,出现相同的片段。观察前面的构造,只有可能是当前的第
由于片段相同,同时去掉这两个片段不影响限制一,也就是说剩下的
故转移方程
答案为
时间复杂度
3. P5376 [THUPC 2019] 过河卒二
先考虑去掉障碍的限制。
考虑传统过河卒:只能向右或向上,从
现在加入了斜着走,因为斜着走移动的步数和向右 / 向上不同,不能简单地组合数计算,需要枚举斜着走的步数,假设斜着走
对于本题走到任意界外点都算结束,有经典套路将终点向右上方移一格,因为走到新边界后只有一种方案:不断向右或不断向上,不影响答案。
接着考虑加入回障碍的限制,由于障碍数量少,直接二进制枚举进行容斥,对于当前选出来的点的集合,从左往右从上往下排序,计算出相邻两个点间行走的方案数(和上面其实同理),然后相乘即可得出至少经过这些点的方案数。
还需要计算起点到集合中第一个点,和最后一个点到终点的方案。奇负偶正容斥即可。
对于障碍的计算,可以预处理出两两间的方案。
对于这种
时间复杂度