1. CF398B
令$f[i][j]$表示已经有i行j列满足条件是期望需要多少次,那么只要枚举下一个点的位置即可。
然后写出来转移,移项就可以得到$f[i][j]$的表达式。
2. CF605E
因为可以原地不动,所以一个点必然会走到期望步数更少的点。
考虑给点按照期望步数排序,那么假如确定了排名的序列,就可以递推出所有点的期望。
所以考虑如何确定每个点的排名。枚举排名,求出每个点假如在这个排名的期望,然后取最小的点安排在这个排名。
3.trip
由期望的线性性,显然可以将贡献分为黑点和白点的。
对于黑点,转移可以简单的写出来,化简之后是可以进行dp的形式。
对于白点,只要计算经过每个白点的概率。
那么可以看做去掉他的所有儿子,并且把这个点染黑。然后就转化成了之前的问题。
只要考虑发生变化的东西即可。
4.期望逆序对
考虑计算每一对点的贡献,那么将所有位置分成三类,即在$i$,$j$或其他位置。
对于不在$i,j$的贡献,容易发现在每个位置的概率相等,所以可以计算。
然后构造矩阵,快速幂可以求出贡献,再套上线段树即可计算所有点对贡献。
5.CF838D
将所有位置看做一个环,并且新加入一个特殊点,那么不合法的方案可以看做特殊点被选择的方案。
那么容易发现每个点不被选的概率相同,所以转化一下题意就可以简单计算了。
6.AGC002F
分情况讨论,若k=1,那么答案是1。
否则,考虑0的出现位置,假如第i个0出现了,那么之后必然会出现i种颜色。
所以考虑dp,记录当前一共几个0和用了几种颜色,转移的时候考虑当前颜色在后面怎么摆放即可,贡献就是组合数。
7.CF995F
枚举最终出现了多少种权值,最后贡献乘上组合数。
考虑计算点权不超过某个数的方案数,可以简单树形dp得到。
然后容斥可以得到恰好用了$i$种数字的方案数。