摘要: 嘟嘟嘟 从今天开始搞一搞组合计数! 先学一个错排公式。 所谓的错排就是一个排列,满足对于任意的$i$,有$a[i] \neq i$。 这东西是可以递推求的。 令$d[i]$表示长度为$n$的排列的错排数。我们假设$d[n - 1]$已经求出来,现在考虑第$n$个。 首先第一个肯定要和其中任意第$i$ 阅读全文
posted @ 2019-05-20 22:10 mrclr 阅读(325) 评论(1) 推荐(0) 编辑
摘要: "嘟嘟嘟" 关于这题为什么逆推想了半天。 看数据范围就很容易想到状压,令$dp[i][S]$表示第$i$轮,选取宝物的状态为$S$时的期望得分。 但是这样用刷表法递推的时候,会产生一些凭空的状态。又考虑到终止状态是已知的,即每一个$S_i$都可能是终止状态,所以我们逆推。这样答案就是$dp[1][0 阅读全文
posted @ 2019-05-20 17:08 mrclr 阅读(128) 评论(0) 推荐(0) 编辑
摘要: "vjudge嘟嘟嘟" 看一眼数据范围,发现可以状压。 转移的话,就枚举接下来抽哪一张卡,发现可能转移到别的状态,可能还是这个状态。把方程列出来移项,就变成了$a x_i = 1 + p_j x _j + p_k x _ k + \ldots$。然后我们逆推即可。 时间复杂度$O(2 ^ n n)$ 阅读全文
posted @ 2019-05-20 15:26 mrclr 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 看到数据范围很小,就可以暴力$O(n ^ 3)$dp啦。 我们令$dp[i][j][k]$表示这三种人分别剩$i, j, k$个的概率。然后枚举谁挂了就行。 这里的重点在于两个人相遇的概率是多少,拿$i, j$举例,乍一看是$\frac{i * j}{(i + j + k) * (i + j 阅读全文
posted @ 2019-05-20 12:51 mrclr 阅读(113) 评论(0) 推荐(0) 编辑