NOIP 第八次
A
双指针,线段树。
B
第一问比较简单,只说第二问。设当前队列大小为 $s$。
维护 $p_i$ 表示 $i$ 时刻插入的数当前在队列中的概率,$q_i$ 表示 $i$ 时刻插入的数当前期望被删的时间,
则插入会对 $p$ 单点赋 $1$,$T$ 时刻的删除会对 $q$ 中除最大值的位置加上 $\dfrac{Tp_i}{s-1}$,然后对 $p$ 中除最大值的位置全局乘 $\dfrac{s-2}{s-1}$,
发现这个很像历史和,维护一下系数就完了。
$s=2\to 1$ 的删除操作好像不太好做,所以按这样的操作把问题划分成若干子问题,
这样每个子问题中只有一个这种操作,就可以暴力了。
C
设 $f_{l,r,k}$ 表示 $[l,r]$ 中所有数减 $k$ 的答案,考虑转移,
要么删去最大值 $p$ 的一列,由 $f_{l,p-1,k}+f_{p+1,r,k}$ 转移,
要么设最小值为 $q$,删去最下面的 $q$ 行,由 $f_{l,q-1,a_q}+f_{q+1,r,a_q}$ 转移。
有效状态只有 $O(n^2)$ 种,哈希记搜即可。
D
改不出来。