专栏文章

题解:P11469 校园跑

P11469题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqoiqcs
此快照首次捕获于
2025/12/04 08:09
3 个月前
此快照最后确认于
2025/12/04 08:09
3 个月前
查看原文
fi,jf_{i,j} 表示剩余 ii 次获取点位的机会,当前点位最小跑动距离为 aja_j 时最后跑动距离的期望的最小值,设 gi=j=1mpj×fi,jg_i=\sum\limits_{j=1}^mp_j\times f_{i,j}。易知 f0,i=aif_{0,i}=a_i
i>0i>0 时,有:
fi,j=min{aj,k=1mpk×fi1,k}=min{aj,gi1}\begin{aligned} f_{i,j}&=\min\{a_j,\sum\limits_{k=1}^mp_k\times f_{i-1,k}\}\\ &=\min\{a_j,g_{i-1}\} \end{aligned}
我们可以将 aa 序列从小到大排序,则存在整数 k[1,m]k\in[1,m],使得:
{aj (jk)gi1 (j>k)\left\{ \begin{aligned} a_j\ (j\le k)\\ g_{i-1}\ (j>k) \end{aligned} \right.
于是有:
gi=j=1mpj×fi,j=(j=1kpj×aj)+(j=k+1mpj)×gi1\begin{aligned} g_i&=\sum\limits_{j=1}^mp_j\times f_{i,j}\\ &=(\sum\limits_{j=1}^kp_j\times a_j)+(\sum\limits_{j=k+1}^mp_j)\times g_{i-1} \end{aligned}
si=j=1ipjs_i=\sum_{j=1}^ip_jwi=j=1ipj×ajw_i=\sum_{j=1}^ip_j\times a_j,则:
gi=wk+(1sk)×gi1\begin{aligned} g_i=w_k+(1-s_k)\times g_{i-1} \end{aligned}
即:
(gi1)=(1skwk01)(gi11)\begin{pmatrix} g_{i}\\ 1 \end{pmatrix} = \begin{pmatrix} 1-s_k&w_k\\ 0&1 \end{pmatrix} \begin{pmatrix} g_{i-1}\\ 1 \end{pmatrix}
显然随着 ii 的增加,gig_i 单调不增,kk 单调不增,那么 kk 至多变化 m1m-1 次。
对于 kk 相同的一段,我们可以通过矩阵快速幂以 Θ(logn)\Theta(\log n) 的时间复杂度求出一个 gg 的值,结合倍增,则能够以 Θ(logn)\Theta(\log n) 的时间复杂度求出最小的满足 gi<akg_i<a_kii,即下一个 kk 变化的分界点。而 kk 至多变化 m1m-1 次,于是我们可以以 Θ(mlogn)\Theta(m\log n) 的时间复杂度求出 gng_ngng_n 即为最终答案。

评论

0 条评论,欢迎与作者交流。

正在加载评论...