1 条题解

  • 0
    @ 2026-8-28 1:25:51

    题解

    思路推导

    记 AnA_n、BnB_n 分别为 nn 张牌时 Alex 和 Boris 获胜的分牌方案数。平局方案始终只有一种。

    考虑最大的牌 nn。若它属于 Alex,Alex 可以立即取得必胜局面,这类方案共有 (n−1n/2−1)\binom{n-1}{n/2-1} 种。其余需要继续比较最高的若干张牌;删去决定当前回合的两张牌后,会转化成规模为 n−2n-2 的同类局面,并交换相应的胜负贡献。由此得到递推:

    An=(n−1n/2−1)+Bn−2,A_n=\binom{n-1}{n/2-1}+B_{n-2}, Bn=(n−2n/2)+An−2.B_n=\binom{n-2}{n/2}+A_{n-2}.

    边界为 A0=B0=0A_0=B_0=0。所有运算都在模 998244353998244353 下进行。

    做法

    先用 Pascal 递推预处理 0≤i≤600\le i\le 60 的组合数,再按偶数顺序计算 AnA_n 与 BnB_n。每个询问直接输出 AnA_n、BnB_n 和 11。

    正确性证明

    每种平均分牌方案按最大牌的归属以及随后必须处理的最高牌关系被唯一分类。最大牌属于 Alex 的方案全部计入第一项;其余非终止局面删去本轮必然消去的两张牌后,与规模为 n−2n-2 的游戏一一对应,且先后手关系使另一方的胜局数转化为当前规模下的对应胜局数。因此两个递推式既不遗漏也不重复。平局分类在每次缩小规模时保持唯一,最终归约到空牌局面,所以平局数恒为 11。由数学归纳法,递推计算出的三个数恰为全部合法分牌方案的分类计数。

    复杂度分析

    预处理时间复杂度为 O(602)O(60^2),空间复杂度为 O(602)O(60^2);每个测试用例的回答时间为 O(1)O(1)。

    • 1

    信息

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