期望和组合问题 题目总结

做数数题(学霸题)的一般思路:(jzp:)

计数题其实可以看做是一类dp问题,只是由于一些状态之间没有关联就成了组合数学题。

计数题可以分为两类:计数dp和组合数学,不过都可以统一为dp。

计数题的基本思路就在于分类和分步。如果直接计算出方案是很难的,但是我们可以把一种方案分为几个部分,如果几类之间没有互相关联,则可以用乘法原理乘起来,如果有牵连就表明直接乘会算重,即:有后效性

和dp类似,我们可以通过多加状态使得其没有后效性。

因此,做计数题分好类是最关键的一步。如果一下子分不出来,就考虑分细一点,直到可以直接知道一类中有多少元素为止,例如分到刚好一种方案就是最细的分类。

但是分类多时间空间就不够,我们就要考虑把类变大一点但仍然需要直接算出来,就可能变成组合数之类的了。

所以本质上还是dp问题,只不过更加新,变化多端。

通常计数题会有很多的限制,我们一般要考虑限制最多的那一个,再在限制多的已经满足的时候考虑限制少的,这样能够降低思维难度和时空复杂度。

刷爆数学

CF1515E Phoenix and Computers

梦想从这里开始。

一开始我想的区间dp,结果怎么都过不了样例,最后发现由于操作之间有顺序关系,如果要强行dp还得记录当前区间进行的操作数量。

不过写区间dp的时候我们也可以发现,只要区间的长度相同dp值就是相同的。因此我们可以转化为对长度进行dp。

设f(i,k)为长度为i的段全部开启,使用了k次操作机会的方案数。显然\(f(i,i)=2^{i-1}\)

image

来自https://www.luogu.com.cn/blog/Social-Zhao/solution-cf1515e

然后我们枚举第一个自动开启的位置,左边就全是选满的,这样会很好转移,如果枚举最后一个操作的位置,那么我们完全不知道左右两边的操作次数。

类似地,我们需要去重,因此钦定第一次操作在左边,那么就可以转移。

\[f(i,j)=\sum_{k=2}^{min(i-1,j)}2^{k-2}C_{j}^{k-1}f(i-k,j-k+1) \]


CF869C The Intriguing Obsession

考虑A往B,A往C,B往C连边。

那么我们只需要枚举连多少条边,然后固定A的顺序,任意排列B的位置。注意这里手玩一下不是AB都要全排列否则会算重!


CF1525E Assimilation IV

期望。

利用线性性,考虑每一个点被点亮的概率之和就是期望。

计算被点亮的概率很难,计算不被点亮的概率比较简单,一种顺序就是一个排列,枚举每一个时间点的选择都不会使他被点亮即可,乘法原理计算。


CF1499E Chaotic Merge

另一类计数dp,我们在dp值中记录所有的合法状态的和,之前的一道模拟赛题和这个很像(无穷二叉树上面走)注意这里用f(i,j,0/1,s)更新其他状态即可。


CF1194F Crossword Expert

期望的线性性。利用单调性计算式子

这里有一个组合数的前缀和,看到这里再推一下!


CF840C On the Bench

\(ab=x^2,ac=y^2->bc=(\frac{xy}{a})^2\)

所以全是团。


P3223 [HNOI2012]排队

分类!!!

考虑直接分为男 女 老师 互相的牵连还是很多,无法做到转移。

分细一点,我们讨论老师的限制在第一次的两个组合中是否满足即可。

先排男的,否则后面插不了空,再排老师:

如果现在满足条件,即被男分开,就是\(A_{n+1}^2\),下一次再插一空即可。

如果不满足条件,相当于捆绑两个老师,就是\(2(n+1)\)(老师相对顺序乘2),下一次两个老师中间必须插一个女生,先分配一个女生插进去,然后捆绑三个人,继续插空法即可

相当于分为了老师中间有男生和无男生两大类再分几小类。


P5520 [yLOI2019] 青原樱

考虑捆绑法,一棵树苗右边捆绑一个空,最后一颗树苗不捆绑,然后直接排列数。这里不能乘逆元,但是我们可以用简单的O(n)求组合数


CF571A Lengthening Sticks

先分类,首先可以分类每一个是最长的木棍时的方案数。最后要加起来。

然后考虑正难则反,计算a+b<=c的方案数,直接求和就好。

总方案数怎么计算?当然是枚举加了多少然后隔板法,注意这里可以不加。再次注意隔板法是互不相同的几个元素!


posted @ 2021-11-14 21:23  lei_yu  阅读(66)  评论(0编辑  收藏  举报