1 条题解

  • 0
    @ 2026-8-19 10:08:25

    手套配对题解

    思路推导

    先从 nn 对手套中选出恰好完整出现的 kk 对。剩余需要选 m2km-2k 只手套,而且它们必须来自不同的手套对,否则完整手套对数量会增加。

    做法

    先选择 kk 对完整手套,共有 (nk)\binom nk 种。再从剩余 nkn-k 对中选择 m2km-2k 对,每对选择左或右其中一只,因此方案数为 (nk)(nkm2k)2m2k\binom nk\binom{n-k}{m-2k}2^{m-2k}

    m2k<0m-2k<0m2k>nkm-2k>n-k,答案为零。预处理阶乘、逆阶乘和二的幂后即可常数时间回答每组数据。

    正确性证明

    任意合法方案都能唯一分成 kk 对完整手套与 m2km-2k 只来自互不相同手套对的单只手套。公式的三部分分别选择完整手套对、只出现一只的手套对以及每对中具体选择的左右手套。该分解与构造互为逆过程,因此公式不重不漏。

    复杂度分析

    预处理时间和空间复杂度均为 O(1000)O(1000);每组数据的时间复杂度为 O(1)O(1)

    • 1

    信息

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