Luogu6633 [ZJOI2020] 抽卡
题意:给出一个整数集
每次抽奖可以随机获得
如果抽出值紧邻的连续
答案对
将已有的卡牌集合看作状态。称已有
卡牌只会变多,转移显然是个 DAG。
一些经典的期望步数问题中,转移往往是链状的,易于分析。
对于本题而言,转移是具有多个终点(好节点)的 DAG。
由期望的线性性,我们分别求出到达每个点的概率以及在这个点停留的期望时间,相乘求和即为答案。
设
已有
而已有
考虑终止节点之后,相当于裁掉了一部分 DAG。
注意,好节点的所有后继都是好的,裁去若干全序集对余下部分的到达概率不会有影响。
接下来的任务就是:对每个
显然,值域不连续的两部分之间无影响,卡片个数简单相加,对应加法卷积。
将每个连续段分开求解,最后分治
一段长度为
设一段
显然,由
方案数为
问题转化为求解