1 条题解

  • 1
    @ 2026-7-6 17:09:02

    乒乓球

    1. 统一建模

    记分差

    d=scorePscoreQd=\text{score}_P-\text{score}_Q

    初始 d=0d=0,到达 d=nd=n 表示 P 获胜,到达 d=nd=-n 表示 P 失败。

    定义

    f(d,i)f(d,i)

    表示当前分差为 dd,下一回合使用 SiS_i(为了表述方便,SS 下标改为 0i<m0\le i<m)发球时,最终 P 获胜概率。

    令:

    • Si=’P’S_i=\texttt{'P'}ai=p=papba_i=p=\frac{p_a}{p_b}
    • Si=’Q’S_i=\texttt{'Q'}ai=q=qaqba_i=q=\frac{q_a}{q_b}
    • bi=1aib_i=1-a_i

    转移:

    $$f(d,i)=a_i\,f(d+1,(i+1)\bmod m)+b_i\,f(d-1,(i+1)\bmod m) $$

    边界:

    f(n,i)=1,f(n,i)=0f(n,i)=1,\quad f(-n,i)=0

    答案是 f(0,0)f(0,0)

    数据生成方式为随机是为了在计算过程中不会出现在模意义下存在多解。

    2. 分 Subtask 对应做法

    Subtask 1(n1n\le1

    这一档部分分实际就是 n=1n=1。比赛一回合就会结束,答案就是首回合 P 赢球概率:

    • S0=’P’S_0=\texttt{'P'},答案 =p=p
    • 否则答案 =q=q

    复杂度:O(1)O(1)(认为计算逆元为常数复杂度)。

    对应代码:std/subtask1.cpp

    Subtask 2(n10,m20n\le10,\sum m\le20

    把所有 n<d<n-n<d<n(d,i)(d,i) 作为未知数,直接列方程组(包含 (2n1)m(2n-1)m 个未知数以及 (2n1)m(2n-1)m 个包含未知数的等式),高斯消元。

    复杂度:

    O((nm)3)O\big((nm)^3\big)

    对应代码:std/subtask2.cpp

    Subtask 3(m=1m=1

    退化为一维随机游走。设每回合 P 赢概率 uu、输概率 v=1uv=1-u,则

    fd=ufd+1+vfd1f_d=u f_{d+1}+v f_{d-1}

    配合边界可得

    f0=11+(v/u)nf_0=\frac{1}{1+(v/u)^n}

    快速幂计算。

    复杂度:O(logn)O(\log n)

    对应代码:std/subtask3.cpp

    Subtask 4(m=2m=2

    Ad=f(d,0), Bd=f(d,1)A_d=f(d,0),\ B_d=f(d,1)

    构成 4 维状态

    Vd=[Ad,Bd,Ad1,Bd1]TV_d=[A_d,B_d,A_{d-1},B_{d-1}]^T

    得到常系数递推 Vd+1=TVdV_{d+1}=TV_d4×44\times4 矩阵),矩阵快速幂求解。

    复杂度:O(logn)O(\log n)

    对应代码:std/subtask4.cpp

    Subtask 5(n104,m50n\le10^4,\sum m\le50

    Pn+1P_{-n+1} 设为 mm 个主元,按层传播“线性系数向量”:已知第 d,d1d,d-1 层推出第 d+1d+1 层。推到顶层后解一个 m×mm\times m 方程组,再回代求 f(0,0)f(0,0)

    复杂度:

    O(nm2+m3)O(nm^2+m^3)

    对应代码:std/subtask5.cpp

    Subtask 6(满分)

    把两层打包:

    $$W_d=\begin{bmatrix}P_d\\P_{d-1}\end{bmatrix}\in\mathbb{F}^{2m} $$

    存在固定矩阵 TF2m×2mT\in\mathbb{F}^{2m\times2m} 使

    Wd+1=TWdW_{d+1}=TW_d

    故可用矩阵快速幂处理 n1018n\le10^{18}:先由 WnW_n 上半部分全 1 解出底层未知向量,再算 W0W_0,第一项即答案。

    复杂度:

    O(m3logn)O(m^3\log n)

    对应代码:std/subtask6.cpp

    • 1

    信息

    ID
    4
    时间
    2000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    40
    已通过
    1
    上传者