第三十次

A

设 $f_i$ 表示 $n=i$ 时剩下的数,则第一轮取数后问题变为规模小 $\left\lceil\dfrac ik\right\rceil$ 的子问题,

$n=i-\left\lceil\dfrac ik\right\rceil$ 时剩下 $f_{i-\left\lceil\frac ik\right\rceil}$,则 $n=i$ 时剩下第一轮没删的倒数第 $f_{i-\left\lceil\frac ik\right\rceil}$ 个数。

B

设 $f_{i,j}=P(a_i>a_j)$,考虑一次交换 $x,y$ 的操作对 $f$ 的影响。

$i,j$ 均不为 $x,y$ 的 $f_{i,j}$ 显然不被影响,

$f_{i,x},f_{i,y}$ 有 $\dfrac 12$ 概率不变,有 $\dfrac 12$ 概率互换,于是 $f_{i,x},f_{i,y}\gets\dfrac{f_{i,x}+f_{i,y}}2$,$f_{x,i},f_{y,i}$ 同类。

$f_{x,y},f_{y,x}$ 有 $\dfrac 12$ 概率不变,有 $\dfrac 12$ 概率互换,于是 $f_{x,y},f_{y,x}\gets\dfrac{f_{x,y}+f_{y,x}}2$。

C

线段树维护斜率单调递增栈大小。

首先左孩子的单调栈是可以直接继承过来的,因为左边没有其他数。考虑右孩子贡献。

如果右孩子的左孩子最大值 $\le$ 左孩子最大值,那么右孩子的左孩子没用,递归求右孩子的右孩子贡献。

否则右孩子的右孩子在右孩子单调栈中的贡献全部继承,递归求右孩子的左孩子贡献。

D

钦定 $n\ge m$。

点 $(i,j)$ 表示还剩 $i$ 个 $\texttt{Yes}$,$j$ 个 $\texttt{No}$ 的状态,则任意 $(n,m)$ 到 $(0,0)$ 的折线可以表示一个答案序列,

向左走表示选 $\texttt{Yes}$,向右走表示选 $\texttt{No}$,则红色线段可以表示每个状态下的最优决策,

答对题数即为最优决策和答案序列的重合部分,题目所求即为随机折线期望与多少红色线段重合。

把折线到达斜线上方的部分沿斜线折下来,此时所有折线与 $n$ 条红色线段重合,

而经过斜线,且在斜线上往左走的折线被少算了,

经过 $(i,i)$ 的折线,前 $2i$ 步必有 $i$ 步向右,后 $n+m-2i$ 步必有 $n-i$ 步向右,

则经过 $(i,i)$ 的折线共有 ${2i\choose i}{n+m-2i\choose n-i}$ 种,在 $(i,i)$ 处向左走的折线共有 $\dfrac{{2i\choose i}{n+m-2i\choose n-i}}2$ 种,

少算的贡献即为在斜线上每个点向左走的折线个数之和,即 $\sum\limits_{i=1}^m\dfrac{{2i\choose i}{n+m-2i\choose n-i}}2$,答案即为 $n+\dfrac{\sum\limits_{i=1}^m\dfrac{{2i\choose i}{n+m-2i\choose n-i}}2}{n+m\choose n}$。

posted @ 2023-08-25 16:36  5k_sync_closer  阅读(6)  评论(0编辑  收藏  举报  来源