1 条题解

  • 0
    @ 2026-4-1 14:45:54

    A. 搭建帐篷 详细题解

    题目核心理解

    有三类人员:aa 个内向者、bb 个外向者、cc 个通用者。 每顶帐篷最多容纳 33 人,且必须满足:

    1. 内向者必须独占一顶帐篷(每顶仅 11 人)。
    2. 外向者所在帐篷必须恰好 33
    3. 通用者无任何限制。

    目标:求出满足所有条件的最小帐篷数,无法满足则输出 1-1


    核心思路

    1. 关键性质

    • 内向者无组合可能,直接占用 aa 顶帐篷。
    • 外向者必须以 33 人为一组,不足 33 人的部分必须用通用者补齐,否则无解。
    • 通用者优先用于补齐外向者,剩余部分每 33 人一组以最小化帐篷数。

    2. 计算规则

    设: d=3bmod3d = 3 - b \bmod 3,表示为了让所有外向者凑成完整 33 人组还需要的人数

    条件判断:

    • bmod3=0b \bmod 3 = 0:无需通用者补齐,直接使用 b3\dfrac{b}{3} 顶帐篷。
    • bmod30b \bmod 3 \neq 0
      • d>cd > c,无解。
      • 否则用 dd 个通用者补齐,消耗 dd 个通用者。

    3. 最终计算

    补齐后,总帐篷数为: 内向者帐篷数 ++ 外向者完整组数 ++ 剩余通用者组数(向上取整)。


    算法流程

    1. 答案初始值为 aa(内向者占用的帐篷数)。
    2. 计算外向者对 33 取余的结果,得到需要补齐的人数 dd
    3. 若需要补齐且通用者不足,输出 1-1
    4. 若足够补齐,扣去对应的通用者,加入外向者占用的帐篷数。
    5. 剩余通用者每 33 人一顶,向上取整后加入答案。

    公式与复杂度分析

    有解时的通用公式:

    $$ans = a + \dfrac{b+d}{3} + \left\lceil \dfrac{c-d}{3} \right\rceil $$

    整数运算等价形式:

    ans=a+b+d3+cd+23ans = a + \dfrac{b+d}{3} + \dfrac{c-d+2}{3}

    复杂度

    每组测试用例仅进行简单算术运算。 时间复杂度:O(1)O(1)。 可轻松处理 a,b,c109a,b,c \le 10^9、测试用例数 t104t \le 10^4 的数据范围。

    • 1

    信息

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